我只是一个初学者,不知道如何反转我在输入上写的文本,所以它在输出上是反转的。我写了这样的话:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
String[] pole = {s};
for (int i = pole.length; i >= 0; i--) {
System.out.print(pole[i]);
} // TODO code application logic here
}
}
但它不起作用,我无法弄清楚原因。
答案 0 :(得分:0)
欢迎来到SO和java世界。 据我所知,问题不仅仅是反转String。问题还在于你不了解字符串和数组。
让我们逐行查看您的代码;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// Read a String
String s = sc.nextLine();
// Put String into an array
String[] pole = { s };
// pole's length is 1, because pole has only one String
for (int i = pole.length; i > 0; i--) {
// pole[i-1] is the input String
// System.out.print(pole[i]); // pole[i] get java.lang.ArrayIndexOutOfBoundsException
System.out.print(pole[i - 1]); // this will print input string not reverse
}
// To iterate over a String
for (int i = s.length() - 1; i >= 0; i--) { // iterate over String chars
System.out.print(s.charAt(i)); //this will print reverse String.
}
}
同样在评论中给出,Java有现成的方法来反转String。等;
new StringBuilder(s).reverse().toString()