编写程序以在不使用Java中使用reverse()方法的情况下反转字符串?
您可以通过多种方式反转String,而无需使用该reverse()
函数。
使用递归 -递归是以自相似的方式重复项目的过程。在编程语言中,如果程序允许您在同一函数内调用函数,则称为函数的递归调用。您可以使用递归函数反转字符串,如以下程序所示。
示例
import java.util.Scanner; public class StringReverse { public static String reverseString(String str){ if(str.isEmpty()){ return str; }else{ return reverseString(str.substring(1))+str.charAt(0); } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter a String value: "); String str = sc.next(); String result = StringReverse.reverseString(str); System.out.println(result); } }
输出结果
Enter a String value: Nhooo tniopslairotuT
转换为字节/字符数组:您可以分别使用getBytes()
ortoCharArray()
方法获得字节或字符数组。
反转给定的字符串
将其转换为数组。
反转数组的元素。
使用结果数组创建另一个String。
示例
import java.util.Scanner; public class StringReverse { public static String reverseString(String str){ //转换为字符数组 char ch[] = str.toCharArray(); int n = ch.length; char result[] = new char[n]; for(int i = 0; i<ch.length; i++) { result[n-1] = ch[i]; n = n - 1; } return new String(result); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Enter a String value: "); String str = sc.next(); String result = StringReverse.reverseString(str); System.out.println(result); } }
输出结果
Enter a String value: Nhooo tniopslairotuT