我知道編碼和練習問題,所以我可以變得更好。我在CodingBat上做了一個問題,但是我陷入了一個問題,我不明白爲什麼我的代碼不工作。增加計數器一次和兩次之間有什麼區別
問題是:給定一個字符串,返回一個字符串,其中原始字符中的每個字符都有兩個字符。
doubleChar("The") → "TThhee"
doubleChar("AAbb") → "AAAAbbbb"
doubleChar("Hi-There") → "HHii--TThheerree"
我寫的代碼是
public String doubleChar(String str) {
char[] STR = str.toCharArray();
char[] two = new char[STR.length*2];
int counter=0;
for(int i=0;i<STR.length;i++){
two[counter]=STR[i];
two[counter+1]=STR[i];
counter++;
}
String b= new String(two);
return b;
}
output results //即時猜測反着的增量counter+1
但只雖然counter++
。我能得到更好的解釋嗎?
經過一段時間的搞亂之後,我找到了它,但我仍然不明白爲什麼原件沒有。我也是新來的編碼,所以我非常感謝幫助!
工作:
public String doubleChar(String str) {
char[] STR = str.toCharArray();
char[] two = new char[STR.length*2];
int counter=0;
for(int i=0;i<STR.length;i++){
two[counter]+=STR[i];
counter++;
two[counter]=STR[i];
counter++;
}
String b= new String(two);
return b;
}
在每次迭代中,你寫兩個大字,但你只增加你的櫃檯一次。所以第一次迭代寫入字符0和1,第二次迭代寫入1和2,第三次寫入2和3等,而不是0,1,2和3,4和5 –