我正在尝试创建一个数组,从字符串中收集char并将它们向后放置到自身,然后将单词返回到String中。
当我尝试运行代码时,它告诉我“字符串索引超出范围:-1”。我已经尝试了一切,无法弄清楚我的代码中的问题所在。这是代码。
public class april{
public static void main(String [] args){
System.out.println("What do you want backwards?");
System.out.println("Your new word is " + reverse(IO.readString()));
}
public static String reverse(String original){
char [] letters = new char [original.length()];
char [] opp = new char [original.length()];
char c= 'a';
char d= 'a';
String word= " ";
String opposite= " ";
for (int x=0;x<original.length();x++){
c = original.charAt(x);
d = original.charAt(x);
letters[x]= c;
if (x!=0){
d = original.charAt(-x-1);
opp[x]=d;
} else {
d = original.charAt(-1);
opp[0]= d;
}
word += letters[x];
opposite += opp[x];
}
return opposite;
}
}
答案 0 :(得分:1)
反转字符串要简单得多。请考虑以下事项:
public static String reverse(String original) {
char[] reverse = new char[original.length()];
for (int i = 0; i < reverse.length; i++) {
reverse[i] = original.charAt(original.length() - i - 1);
}
return new String(reverse);
}
您需要做的就是在一个方向上进行迭代,并在每次通过时在另一个方向上使用相反的字符。请注意-1,因为original.length()
将为您提供基于1的索引。