[英]Using loops to reverse a string
我在執行某人輸入多行字符串的任務時遇到了麻煩,我在完全相同的位置(空格和換行符相同)讀取了字符串和 output 每個單詞。 在輸入用戶想要反轉多少個單詞后,他們鍵入“完成”以基本上停止循環。
例如。 輸入:
hey hello
world
done
output:
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 循環而不是反向 for 循環並交換里面的和:
String str = "hello world", reverse = "";
for (char ch : str.toCharArray())
reverse = ch + reverse;
System.out.println(reverse); // dlrow olleh
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.