反向字符串方法
我试图解决以下问题,但如何编写接受String作为参数的方法?
编写一个名为
printReverse
的方法,该方法接受String作为参数,并以相反的顺序打印字符。 如果将空字符串作为参数传递,则该方法不应生成任何输出。 一定要写一个主要的方法,令人信服地展示你的程序。 不要使用StringBuilder
或StringBuffer
类的反向方法!
到目前为止,我已经以更简单的方式解决了它:
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--; } } }