Java程序反转字符串不起作用?

时间:2018-05-13 06:02:10

标签: java string function

我编写了一段代码来反转Java中的字符串。但是,它显示出多个错误,我希望了解我哪里出错了。我知道有其他方法可以反转字符串。但是,我想知道我的代码出错了。

public class RevString {
public static void main(String[] args)
{
    public Reverse (String str)
    {
        int len = str.length();
        String rev;

        for (int i = 0; i <= len; i++)
        {
                rev = str[i] + rev;
            }
            System.out.println(rev);    
        }
        Reverse("Canyon");
    }
}

错误:

Multiple markers at this line
    - Syntax error on token ")", ; expected
    - Syntax error on token "(", . expected
    - Reverse cannot be resolved to a type
    - Illegal modifier for parameter str; only final is 
The method Reverse(String) is undefined for the type 
 RevString

有人能为我提供解决方案吗?

4 个答案:

答案 0 :(得分:2)

您的代码中有许多错误:

  • For循环条件应为i < len
  • String rev应初始化为&#34;&#34; (空字符串),否则当您尝试向其追加另一个字符串时会抛出错误。
  • 您无法使用str [i]访问字符串中的字符,请改用str.charAt(i)。
  • 您正在尝试在另一个函数(main)中初始化函数(Reverse),您必须在main函数之外初始化它。

此外,这是一个简单的一个用于字符串反转的衬垫:

new StringBuilder(str).reverse().toString()

如果您想在Java中进行任何类型的字符串操作,可能需要使用StringBuilder类。

答案 1 :(得分:1)

您的代码有很多问题:

  • 您在main方法中声明方法Reverse()
  • 您还需要将rev初始化为空字符串。
  • 您可以使用str.charAt(i)访问字符串的每个字符。
  • 如果您使用i <= len;,那么for循环将超出字符串 应为i < len;
  • 您的Reverse()方法应为static,因为您在main中呼叫它 方法(static

这是工作代码。

public class RevString {
    public static void main(String[] args) {
        Reverse("Canyon");        
    }

    public static void Reverse (String str) {
        int len = str.length();
        String rev="";

        for (int i = 0; i < len; i++) {
            rev = str.charAt(i) + rev;
        }
        System.out.println(rev);    
    }
}

答案 2 :(得分:0)

请参阅以下代码:

public class Hello {

    public static String reverse (String str){
        int len = str.length();
        String rev="";

        char[] strArray = str.toCharArray();

        for (int i = 0; i < len; i++)
        {
            rev = strArray[i] + rev;
        }

        return rev;
    }

    public static void main(String[] args) {

        String result = reverse("Canyon");
        System.out.println("Reversed String: " + result);
    }
}

答案 3 :(得分:0)

public class reverseString
{
  public static void main(String[] args)
  {
       System.out.println("Welcome to the the string reverser.");
       System.out.println("Here is where a person may put is a sentence and the orintation" +
                         " of the words is reversed.");
       Scanner keyboard = new Scanner(System.in);
       String word = keyboard.nextLine();
       int lengthOf = word.length();
       int j = 0;
    
       char loopStr;
       String LoopStr;
       String Nstr = "";
    
       for(int n = lengthOf; n >0 ;n--)
       {
           j = n;
           LoopStr = word.substring(j-1,j);
           Nstr = Nstr + LoopStr;
       
       }   
            System.out.println(Nstr);
   }
}