【问题标题】:How to make a reverse string using a for loop?如何使用 for 循环制作反向字符串?
【发布时间】:2017-08-26 04:15:27
【问题描述】:

我需要让我的代码以相反的顺序输出字符串。例如,输出应将“code”返回为“edoc”。这是我到目前为止所做的。

public String reverseString(String str) {
 String res = "";

for (int i = 0; i <= str.length()-1; i++) {
   res = res + str.charAt(i);
 }
  return res;
}

【问题讨论】:

  • 这必须使用for 循环吗?这是java、c#还是什么?
  • 对不起。它是用 Java 编写的,是的,它必须使用 for 循环。
  • OK 仅作为评论,非new StringBuilder(mystring).reverse().toString()
  • 选择并理解答案中的技巧,以增强您的“学习”练习;正或负 for 循环。

标签: java string return output reverse


【解决方案1】:

您这样做的主要问题是您从 str 中获取第 n 个字符并将其附加以使其成为 res 的第 n 个字符。

你可以这样修复它:

public String reverseString(String str) {
   String res = "";

   for (int i = str.length() - 1; i >= 0; i--) {
       res = res + str.charAt(i);
   }
   return res;
}

【讨论】:

    【解决方案2】:

    你的串联是倒着的。试试:

    public String reverseString(String str) {
        String res = "";
        for (int i = 0; i < str.length(); i++) {
           res = str.charAt(i) + res;            // Add each char to the *front*
        }
        return res;
    }
    

    还要注意更简单、规范的循环终止条件。

    【讨论】:

      【解决方案3】:
      public class ReverseString {
      
          //1. using for loop and charAt
          public static void main(String[] args) 
          {
              String s="Selenium";
              
              String reverse="";
              for(int i=s.length()-1;i>=0;i--)
              {
                  reverse=reverse+(s.charAt(i));
              }
              System.out.println(reverse);
      }
      
      

      【讨论】:

      • 您应该在这个答案中添加一些评论,解释它如何改进 Jack Gore 的 that provided some time ago(如果确实如此的话)。
      猜你喜欢
      • 2020-05-22
      • 2014-02-17
      • 2021-02-24
      • 2017-04-13
      • 2017-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-07
      相关资源
      最近更新 更多