string o = "meow"
public static void swapPairs(String o){
char x;
char y;
char[] oc = o.toCharArray();
//Array goes out of bounds, but it still works.
for(int i = 0; i<= oc.length+2;i=i+2){
x=oc[i];
oc[i]=oc[i+1];
oc[i+1]=x;
System.out.println(oc[i]+"\n"+oc[i+1]);
}
}
这种方法的目标是交换字符串中的每两个字符,我搜索,我无法理解其他解决方案。这种方法适用于单词喵,但它仍然超出界限。为什么?
如果Google在这里发送了您的请求:我将两个添加到数组的末尾而不是删除两个。简单的错误总是隐藏在我身上。如何阻止这种情况发生,为什么不是我已经在做的工作?
编辑:现在我遇到了不均匀的字符串问题。如果没有匹配,我该如何告诉编译器只保留最后一个字符?
'它仍然超出界限的。为什么?'因为你试图访问索引大于数组长度的元素,这就是为什么。 – Prateek
'我<= oc.length + 2'这总是会引起问题。最大长度是长度,你循环到长度+2。 –
伙计。算一算。 “meow”的长度为4.你的for循环将我从0移动到oc.length + 2,这对于“喵”是6。当然你会走出界限!如果你以“”或奇数开头,你的故事将会非常糟糕。您需要以不同的方式考虑整个解决方案。考虑有多少对可以从那里出来和解决。 –