Java 使用子字符串向后显示字符串

Java 使用子字符串向后显示字符串,java,substring,Java,Substring,这里有一个向后显示字符串的方法 public static String ReverseStr(String backward) { String newString = ""; for (int i=0; i<backward.length(); i++) { newString = backward.charAt(i) + newString; } return newString; } 但是当我运行程序时,

这里有一个向后显示字符串的方法

public static String ReverseStr(String backward) {
       String newString = "";
       for (int i=0; i<backward.length(); i++) {
          newString = backward.charAt(i) + newString;
       }
       return newString;
}

但是当我运行程序时,它什么也不显示。请帮我修改代码。多谢各位

如果这不是家庭作业,则使用StringBuilder类和reverse()方法

()


如果这是一个家庭作业,请自己完成。

由于控制条件错误,循环永远不会执行:

for (int i=0; i>backward.length(); i--)
它从
0
开始,一直持续到
i
大于
length
(这从来都不是真的,因为
length
始终至少是
0
)。你可能是说:

一旦您修复了代码,请考虑使用<代码> StringBuilder <代码>,而不是将其连接到<代码> String < /代码>。一旦您成功使用,您将发现简便的方法:


您的for循环出错,它将永远不会运行,因为您的条件错误,请将其更改为:

 for (int i=backward.length(); i>=0; i--)

您应该
StringBuilder
。下面的代码应该按照您的预期工作

public static String ReverseStr(String backward)
{
   String newString = "";
   StringBuilder sb=new StringBuilder(backward);
   for (int i=0; i>backward.length(); i--) //backward.length() may be replaced with sb.length()
   {
      String subChar = sb.charAt(i); //Replace `substring()` with `charAt()`
      newString += subChar;
   }
   return newString;
}
类测试
{
公共静态void main(字符串[]args)
{
字符串strtorrev=“测试代码”;
字符串newString=“”;
int len=strtorrev.length();
系统输出打印项次(len);

对于(inti=0;i我们可以使用递归来反转字符串

public class ReverseStringTest {
    public static String reverseString(String str) {
        if (str.isEmpty()) {
            return str;
        } 
        //Calling Function Recursively
        return reverseString(str.substring(1)) + str.charAt(0);
    }

    public static void main(String[] args) {
        System.out.println(reverseString("java"));
    }
}

您好Rafael!我不知道有这样的类和方法。谢谢。我是Java新手,我想练习不同的风格。您好,因为您正在学习Java,我建议您也检查Java类源代码。这是一个很好的学习源代码。检查文件src.zip,它位于您安装Java的文件夹中。解压缩它并学习t标准java类的源代码。谢谢你,Tomasz!你是对的哈哈,我真傻。但是当我运行代码时,例如我输入“hello”,它输出“ooooo”。@FirstLady:this
backward.substring(backward.length()-1);
不正确,你自己去弄清楚。谢谢你,ftom2!但是当我运行代码时,例如我输入“hello”,它输出“ooooo”.我认为你问了太多问题是为了你好。你需要学会自己解决这些问题。除非你这样做,否则你不会成为一个有效的程序员。我同意Stephen的观点。花几个小时研究标准包的javadoc并尝试这些东西不会浪费时间。欢迎来到Stack Overflow!请不要浪费时间nswer仅提供源代码。请尝试提供有关解决方案工作原理的详细说明。请参阅:。谢谢。请不要仅使用源代码回答。请尝试提供有关解决方案工作原理的详细说明。请参阅:。谢谢
 for (int i=backward.length(); i>=0; i--)
public static String ReverseStr(String backward)
{
   String newString = "";
   StringBuilder sb=new StringBuilder(backward);
   for (int i=0; i>backward.length(); i--) //backward.length() may be replaced with sb.length()
   {
      String subChar = sb.charAt(i); //Replace `substring()` with `charAt()`
      newString += subChar;
   }
   return newString;
}
public static String ReverseStr(String backward) {

       String newString = "";

       for (int i=backward.length()-1; i>=0; i--) 
          newString+ = backward.charAt(i);

       return newString;
}
class Test
{
    public static void main(String[] args)
    {
        String strtorev = "Test Code";
        String newString = "";
        int len = strtorev.length();
        System.out.println(len);
        for(int i =0;i<len;i++)
        {
            String subChar = strtorev.substring(strtorev.length()-1-i,strtorev.length()-i);
            newString += subChar;
            System.out.println(newString);
        }
    }
}
public class ReverseStringTest {
    public static String reverseString(String str) {
        if (str.isEmpty()) {
            return str;
        } 
        //Calling Function Recursively
        return reverseString(str.substring(1)) + str.charAt(0);
    }

    public static void main(String[] args) {
        System.out.println(reverseString("java"));
    }
}