编写一个Java程序来反转字符串,并附带一个示例。我们可以通过多种方式实现
- 使用 StringBuilder 函数。
- 使用 for 循环
- while 循环
- 使用临时变量进行交换
- 使用 StringBuffer
- 递归函数
Java 程序使用 StringBuilder 反转字符串
在此示例中,我们使用 StringBuilder 类来反转给定的字符串。这里,StringBuilder(revStr) 将创建一个名为 sb 的 StringBuilder。println() 语句中的 sb.reverse() 调用 StringBuilder 类中可用的 reverse() 函数来反转文本。
import java.util.Scanner;
public class Example {
private static Scanner sc;
public static void main(String[] args)
{
String revStr;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter Text = ");
revStr = sc.nextLine();
StringBuilder sb = new StringBuilder(revStr);
System.out.println("The result = " + sb.reverse());
}
}

使用 for 循环
在此示例中,我们使用 for 循环从后向前反向迭代 revStr。接下来,我们将每个字符连接到 newStr。这里,length() 函数用于查找长度,并且不要忘记减少 i 值 (i–)。
import java.util.Scanner;
public class Example2 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
int i;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter = ");
revStr = sc.nextLine();
String newStr = "";
for(i = revStr.length() - 1; i >= 0; i--) {
newStr += revStr.charAt(i);
}
System.out.println("The result = " + newStr);
}
}
Please Enter = text revrse
The result = esrver txet
在此字符串反转代码中,我们首先将 revStr 转换为 revCharArr 字符数组。接下来,我们使用 for 循环 从右到左遍历 revCharArr,将最后一个值赋给第一个索引,依此类推。
import java.util.Scanner;
public class Example3 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
int i, j = 0;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter Text = ");
revStr = sc.nextLine();
char[] revCharArr = revStr.toCharArray();
System.out.print("\nThe result = " );
for(i = revCharArr.length - 1; i >= 0; i--) {
revCharArr[j++] = revStr.charAt(i);
}
System.out.print(revCharArr);
}
}
Please Enter Text = Hello
The result = olleH
在此字符串反转 代码 中,我们使用临时变量来保存和交换值。
import java.util.Scanner;
public class Example5 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
char temp;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter Text = ");
revStr = sc.nextLine();
char[] revCharArr = revStr.toCharArray();
int len = revStr.length() - 1;
System.out.print("\nThe result = " );
for(int i = 0; i < revCharArr.length / 2; i++) {
temp = revCharArr[i];
revCharArr[i] = revCharArr[len];
revCharArr[len--] = temp;
}
System.out.print(revCharArr);
}
}

Java 程序使用 While 循环反转字符串
此示例与上面的 for 循环示例相同。但是,我们将 for 替换为 while 循环。
import java.util.Scanner;
public class Example4 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter = ");
revStr = sc.nextLine();
char[] revCharArr = revStr.toCharArray();
String newSt = "";
int i = revCharArr.length - 1;
System.out.print("\nThe first result = " );
while(i >= 0) {
System.out.print(revCharArr[i]);
newSt += revCharArr[i];
i--;
}
System.out.println("\nThe Second result = " + newSt);
}
}
Please Enter = Programming World
The first result = dlroW gnimmargorP
The Second result = dlroW gnimmargorP
使用 StringBuffer 反转字符串
与 StringBuilder 类类似,StringBuffer 也有一个 reverse() 函数。因此,我们将给定的 revStr 转换为 sbuff (StringBuffer) 并反转它。请参阅 Java 教程。
import java.util.Scanner;
public class Example6 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter Text = ");
revStr = sc.nextLine();
StringBuffer sbuff = new StringBuffer(revStr);
System.out.println("The result = " + sbuff.reverse());
}
}
Please Enter Text = tutorial gateway
The result = yawetag lairotut
使用递归反转字符串的程序
import java.util.Scanner;
public class Example7 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter Text = ");
revStr = sc.nextLine();
sc.close();
String rev = retxt(revStr);
System.out.print("\nThe result = " + rev );
}
public static String retxt(String revStr) {
if(revStr.isEmpty()) {
return revStr;
}
return retxt(revStr.substring(1)) + revStr.charAt(0);
}
}

这是上面程序的扩展。
import java.util.Scanner;
public class Example8 {
private static Scanner sc;
public static void main(String[] args) {
String revStr;
sc= new Scanner(System.in);
System.out.print("\nPlease Enter text = ");
revStr = sc.nextLine();
System.out.print("\nThe result = " );
rvstDef(revStr);
}
public static void rvstDef(String revStr) {
if(revStr.isEmpty()) {
System.out.println(revStr);
}
else {
System.out.print(revStr.charAt(revStr.length() - 1));
rvstDef(revStr.substring(0,revStr.length() - 1));
}
}
}
Please Enter text = This Tutorial
The result = lairotuT sihT