反向字符串方法

我试图解决以下问题,但如何编写接受String作为参数的方法?

编写一个名为printReverse的方法,该方法接受String作为参数,并以相反的顺序打印字符。 如果将空字符串作为参数传递,则该方法不应生成任何输出。 一定要写一个主要的方法,令人信服地展示你的程序。 不要使用StringBuilderStringBuffer类的反向方法!

到目前为止,我已经以更简单的方式解决了它:

 import java.util.Scanner; class ReverseString { public static void main(String args[]) { String original, reverse = ""; Scanner in = new Scanner(System.in); System.out.println("Enter a string to reverse"); original = in.nextLine(); int length = original.length(); for ( int i = length - 1 ; i >= 0 ; i-- ) reverse = reverse + original.charAt(i); System.out.println("Reverse of entered string is: "+reverse); } } 

我强烈建议您阅读一本基础教程 。

你可以简单地做:

 private static String myReverse(String str) { String reverse = ""; int length = str.length(); for( int i = length - 1 ; i >= 0 ; i-- ) { reverse = reverse + str.charAt(i); } return reverse; } 

在您的main ,您只需:

 String reversed = myReverse(in.nextLine()); 

请注意,该方法static因为您从静态方式 ( main方法)引用它。 如果您不希望它是静态的 ,则必须通过对象访问它。

另请注意,对于for循环,总是使用大括号是一个好习惯,即使它包含一行。

如何编写接受String作为参数的方法?

 public static String reverse(String forward) { char[] strChar = forward.toCharArray(); String reverse = ""; for( int i = strChar.length - 1 ; i >= 0 ; i-- ) reverse = reverse + strChar[i]; return reverse; } 

但对于带有+运算符的大字符串附加字符可能效率低下。 使用上述方法反转字符串将导致单代码不匹配错误。 因为它反转代码单元而不是字符。 实际上有一个内置的支持可以使用StringBuilder来反转字符串,它可以正常工作:

 public static String reverse(String forward) { StringBuilder builder = new StringBuilder(forward); String reverse = builder.reverse().toString(); return reverse; } 

像这样的东西:

 public class StringUtils { public static String reverse(String forward) { String result = ""; // Put your code here return result; } } 
 private static void printReverse (String org) { StringBuffer buffer = new StringBuffer(org); String reversedStr = buffer.reverse().toString(); System.out.println("The reverse of the string \"" + str + "\" is \"" + reversedStr + "\"."); } 

在主要调用函数

 printReverse(original); 

尝试这个:

 private static String reverseString(String str)
 {
     String revString =“”;

     for(int i = str.length() -  1; i> = 0; i--)
     {
         revString = revString + str.charAt(i);
     }
     return revString;
 }
 public class Dowhile { package dowhile; public static void main(String[] args) { // TODO code application logic here String message="i love java programming"; int msglength = message.length(); int index=msglength-1; while(index>=0) { System.out.print(message.charAt(index)); index--; } } }