关于 JAVA 的单词反转顺序的基本 Java 编码问题
basic Java coding question about reversing order of words for JAVA
我正在寻找一种方法来反转 java 中的单词。
这是我的代码,它出现错误。
有人可以解释为什么吗?
import java.util.Scanner;
public class Robot {
public static void reverse(String text) {
int leng = text.length();
int i = 0;
while (leng-i>=0){System.out.print(text.charAt(leng-i));
i++;
}
}
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Type in your text: ");
String text = reader.nextLine();
System.out.print("In reverse order: ");
reverse(text);
}
}
我希望它能颠倒单词的顺序,但事实并非如此。
应该是
int i = 1;
否则,您将得到 StringIndexOutOfBoundsException
,因为 text.length()
永远不是有效索引。
为了使其更短(更酷),您可能需要编写
System.out.print(text.charAt(leng - i++));
不过,we usually do
System.out.print(new StringBuilder(text).reverse());
你的问题在这里:
int leng = text.length();
java 中的数组是从 0 开始索引的,这意味着字符串中的最后一个字符位于索引 (text.length()-1
),而不是 text.length()
所以,您可以将leng
设置为text.length()-1
,或者您可以将i
设置为1
我正在寻找一种方法来反转 java 中的单词。 这是我的代码,它出现错误。
有人可以解释为什么吗?
import java.util.Scanner;
public class Robot {
public static void reverse(String text) {
int leng = text.length();
int i = 0;
while (leng-i>=0){System.out.print(text.charAt(leng-i));
i++;
}
}
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.println("Type in your text: ");
String text = reader.nextLine();
System.out.print("In reverse order: ");
reverse(text);
}
}
我希望它能颠倒单词的顺序,但事实并非如此。
应该是
int i = 1;
否则,您将得到 StringIndexOutOfBoundsException
,因为 text.length()
永远不是有效索引。
为了使其更短(更酷),您可能需要编写
System.out.print(text.charAt(leng - i++));
不过,we usually do
System.out.print(new StringBuilder(text).reverse());
你的问题在这里:
int leng = text.length();
java 中的数组是从 0 开始索引的,这意味着字符串中的最后一个字符位于索引 (text.length()-1
),而不是 text.length()
所以,您可以将leng
设置为text.length()-1
,或者您可以将i
设置为1