【问题标题】:Using loops to reverse a string使用循环反转字符串
【发布时间】:2021-03-10 02:58:54
【问题描述】:

我在执行某人输入多行字符串的任务时遇到问题,我读取该字符串并在完全相同的位置反向输出每个单词(空格和换行符相同)。在输入用户想要反转的字数后,他们输入“done”以基本上停止循环。

例如。输入:

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);
        }
    }
}

【问题讨论】:

    标签: java string loops java.util.scanner reverse


    【解决方案1】:

    你很亲密。我只是稍微更改了您的外部 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);
        }
    }
    

    【讨论】:

      【解决方案2】:

      你想打印输入单词的循环是这样的:

      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 根据某些用户输入停止打印。

      【讨论】:

        【解决方案3】:

        为了简化代码,您可以使用增强的for循环代替反转的for循环并交换里面的和:

        String str = "hello world", reverse = "";
        
        for (char ch : str.toCharArray())
            reverse = ch + reverse;
        
        System.out.println(reverse); // dlrow olleh
        

        【讨论】:

          猜你喜欢
          • 2017-04-13
          • 2020-06-07
          • 1970-01-01
          • 2021-10-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-10
          • 1970-01-01
          相关资源
          最近更新 更多