【发布时间】:2019-11-19 21:17:27
【问题描述】:
我已经编写了代码来提示用户输入一个将被系统反转显示的句子。我已经在一些帮助下管理了它,但我现在很难评论我的代码来解释它的每一部分。我有点明白我做了什么,但我觉得我没有掌握每一行的“为什么”。
任何人都可以帮助我的 cmets 吗?
public static void main(String[] args) {
// TODO Auto-generated method stub
String original = "", reverse = ""; // Setting the strings values
Scanner in = new Scanner(System.in); // Scanner is equal to input from user
while(!original.contains("exit"))
// As long as user does not input "exit", user will be prompt to enter a sentence
{
original = "";
reverse = "";
System.out.println("Enter a sentence to be reversed: ");
original = in.nextLine(); // Setting "original" to be equal to user's input
int length = original.length(); // Getting user's input character length (original)
for (int i = length - 1; i >= 0; i--) // Getting input from the last character to be reversed
reverse = reverse + original.charAt(i); //Setting "reverse" to the input "original" characters
System.out.println(reverse); // Printing the input reversely
}
}
最模糊的部分是:
for (int i = length - 1; i >= 0; i--)
还有:
reverse = reverse + original.charAt(i);
【问题讨论】:
-
使用调试器并通过少量测试输入单步调试代码。
-
For loop**- 从字符串的最后一个字符开始循环遍历字符串的每个字符。reverse**- 附加每个字符以形成新字符串。我建议使用StringBuilder而不是String concatenation。