我写了这段代码来交换单词中的字符 但由于某种原因,它没有交换第一个角色,任何帮助将不胜感激。
public class StringWorker{
public static void main (String[]arg$){
Scanner in = new Scanner(System.in);
System.out.println("enter a word: ");
String str = in.nextLine();
char[] newCh = str.toLowerCase().toCharArray();
int length= str.length()-1;
char temp;
for (int i=0; i<length; i++){
temp = newCh[i];
newCh[i] = newCh[i++];
newCh[i++] = temp;
}
String revamped = String.valueOf(newCh);
System.out.println(revamped);
System.exit(0);
}
}
答案 0 :(得分:5)
变化:
for (int i=0; i<length; i++){
temp = newCh[i];
newCh[i] = newCh[i++];
newCh[i++] = temp;
为:
for (int i=0; i<length - 1; i++){
temp = newCh[i];
newCh[i] = newCh[i+1];
newCh[i+1] = temp;
}
i++
正在递增i
(如i = i + 1
),所以当您完成循环的第一次迭代时,i
已经是2。
补充:这是我第一次跳出来,但我很好奇你对“交换”的定义。这个小修正只会导致第一个字符一直移动到最后,例如“交换”将成为“waps”。