第一种方法:
package CL6;
/**
* @author: 贾兴伟
* @date: Created in 9:10 2020/9/22
*/
import java.util.Scanner;
public class reserve2 {
public static void swap(String[] arr,int i ,int j){
String a ="";
a= arr[i];
arr[i] = arr[j];
arr[j] = a;
}
public static void main(String[] args) {
String str = "i am a student";
String[] arr = str.split(" ");
int i =0;
int j =arr.length-1;
while(i<j){
swap(arr,i,j);
i++;
j--;
}
String str1 = "";
for(i=0;i<arr.length;i++){
str1+=arr[i];
str1+=" ";
}
System.out.println(str1);
}
}
第二种:
package CL6;
/**
* @author: 贾兴伟
* @date: Created in 15:27 2020/9/22
*/
import java.util.Scanner;
public class reserve3 {
public static void swap(char[] arr,int i ,int j){
char a ;
a= arr[i];
arr[i] = arr[j];
arr[j] = a;
}
public static void resev(char[] arr,int i,int j){
while(i<j){
swap(arr,i,j);
i++;
j--;
}
}
public static String finanResev(char[] arr){
int a =0;
int b =0;
for(int i =0;i<arr.length;i++){
if(arr[i]==' '){
a = i-1;
resev(arr,b,a);
b = a + 2;
}
if(i==arr.length-1){
a = i;
resev(arr,b,a);
}
}
return new String(arr);
}
public static void main(String[] args) {
System.out.println("请输入一句话");
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
char[] arr = str.toCharArray();
int i =0;
int j =arr.length-1;
resev(arr,i,j);
System.out.println(finanResev(arr));
}
}
第三种:
package CL6;
/**
* @author: 贾兴伟
* @date: Created in 18:33 2020/9/20
*/
import java.util.Scanner;
public class reserve {
public static String reverse(String word){
//toCharArray() 方法将字符串转换为字符数组
char[] arr = word.toCharArray();
char[] brr = new char[arr.length];
int count = 0;
for(int i=arr.length-1;i>=0;i--){
if(arr[i]==' '){
//倒叙查找,找到一个空格之后 从空格的下一个坐标开始复制给brr数组
for(int n = i+1;n<arr.length;n++){
brr[count++]= arr[n];
if(n == arr.length-1)
brr[count++] = ' ';//对于最后一个单词,输出完成之后要手动添加一个空格
if(arr[n]==' ') //复制到下一个空格之后 跳出循环查找下一个单词
break;
}
} else if (i == 0){
for(int n = i;n<arr.length;n++){
if(arr[n]==' ')
break; //注意这里的if条件不能写在 brr[count++]= arr[n];之后,
// 因为这里已经是第一个单,空格不能输出,否则brr会越界
brr[count++]= arr[n];
/*if(arr[n]==' ')
break;*/
}
}
}
return new String(brr);
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入英文语句:");
String word = sc.nextLine();
System.out.println(reverse(word));
}
}