使用循环反转字符串
Using loops to reverse a string
我在执行某人输入多行字符串的任务时遇到问题,我读取该字符串并在完全相同的位置(空格和换行符相同)反向输出每个单词。在输入用户想要反转的字数后,他们键入“完成”以基本上停止循环。
例如。输入:
hey hello
world
done
输出:
yeh olleh
dlrow
这是我的代码,其中循环从不停止并且不扫描第二行。
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String input = scnr.next();
String reverse = "";
while (!input.equals("done")) {
for (int i = input.length() - 1; i >= 0; i--) {
reverse = reverse + input.charAt(i);
}
System.out.println(reverse);
}
}
}
要打印输入单词的循环是这样的:
Scanner scnr = new Scanner(System.in);
String input = scnr.next();
for (int i=input.length()-1; i >= 0; --i) {
System.out.print(input.charAt(i));
}
请注意,我使用 print()
而不是 println()
,因为您想在同一行上查看反向输入。
至于在循环 运行 时接受用户输入,如果需要,您应该 break
根据某些用户输入停止打印。
你很接近。我只是稍微更改了您的外部 while 循环,以接受输入并检查终止字符串。它现在将反转您输入的内容,但如果您输入 done
.
则会停止
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String input;
while (!(input = scnr.nextLine()).equalsIgnoreCase("Done")) {
String reverse = "";
for (int i = input.length() - 1; i >= 0; i--) {
reverse = reverse + input.charAt(i);
}
System.out.println(reverse);
}
}
为了简化代码,您可以使用 增强的 for 循环 而不是 反向循环 并交换内部的加数:
String str = "hello world", reverse = "";
for (char ch : str.toCharArray())
reverse = ch + reverse;
System.out.println(reverse); // dlrow olleh
我在执行某人输入多行字符串的任务时遇到问题,我读取该字符串并在完全相同的位置(空格和换行符相同)反向输出每个单词。在输入用户想要反转的字数后,他们键入“完成”以基本上停止循环。
例如。输入:
hey hello
world
done
输出:
yeh olleh
dlrow
这是我的代码,其中循环从不停止并且不扫描第二行。
import java.util.Scanner;
public class LabProgram {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String input = scnr.next();
String reverse = "";
while (!input.equals("done")) {
for (int i = input.length() - 1; i >= 0; i--) {
reverse = reverse + input.charAt(i);
}
System.out.println(reverse);
}
}
}
要打印输入单词的循环是这样的:
Scanner scnr = new Scanner(System.in);
String input = scnr.next();
for (int i=input.length()-1; i >= 0; --i) {
System.out.print(input.charAt(i));
}
请注意,我使用 print()
而不是 println()
,因为您想在同一行上查看反向输入。
至于在循环 运行 时接受用户输入,如果需要,您应该 break
根据某些用户输入停止打印。
你很接近。我只是稍微更改了您的外部 while 循环,以接受输入并检查终止字符串。它现在将反转您输入的内容,但如果您输入 done
.
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
String input;
while (!(input = scnr.nextLine()).equalsIgnoreCase("Done")) {
String reverse = "";
for (int i = input.length() - 1; i >= 0; i--) {
reverse = reverse + input.charAt(i);
}
System.out.println(reverse);
}
}
为了简化代码,您可以使用 增强的 for 循环 而不是 反向循环 并交换内部的加数:
String str = "hello world", reverse = "";
for (char ch : str.toCharArray())
reverse = ch + reverse;
System.out.println(reverse); // dlrow olleh