Java 程序反转字符串

编写一个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());
	}
}
Program to Reverse a String using stringbuilder

使用 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);
	}
}
Reverse a String using For Loop

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);
	}
}
Program to Reverse a String using Recursion

这是上面程序的扩展。

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