※ 引述《appleoxxo (BB)》之銘言:
: 寫了一個方法 它的作用是
: 將一個字串索引位置為n的字元若有重複出現 刪除重複出現的字元
: 程式碼如下
: public static StringBuffer common1(String a,int n)
: {
: StringBuffer sb= new StringBuffer(a);
: for(int i =0;i<a.length();i++)
: {
: if(a.charAt(n)==a.charAt(i)&&n!=i)
: {
: sb.deleteCharAt(i);
: }
: }
: return sb;
: }
: ------------------------------------
if a = "aaa", n = 1
Before Loop 1:
i = 0
sb.toString() = "aaa"
123
After Loop 1:
i = 1
sb.toString() = "aa"
23
After Loop 2:
i = 2
sb.toString() = "aa"
23
When Loop 3:
sb.delete(i (which is 2)) throws StringIndexOutOfBoundsException
你可以從後面砍回來, 這樣即使 sb 長度縮短也不會影響到接下來的處理...
--
理論上
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.34.3