将String类型的字符串里的内容进行反序排列得到一个新的String类型字符串,下面提供两种方法实现:

  法1、先将原String类型字符串转换为字符数组,通过字符数组来操作各个位上的单个字符,通过对称的交换首尾字符实现整体字符数组的反序操作,然后将此字符数组再转换为String类型的字符串。

 package ****;

 import java.util.*;

 public class sanweifanxushu_3_8 {
public static void main(String[] args){
int n,len=0;
System.out.println("请输入一个不以0为结尾的整数");
Scanner input = new Scanner(System.in);
n = input.nextInt();
if(n%10==0){
System.out.println("输入格式错误!输入不能以0结尾!");
}
else{
String str11 = String.valueOf(n);
len = str11.length();
for(int i=0;i<(len/2);i++){
str11 = swap(str11,i,len-1-i);
}
System.out.println(n+"的反序数是:"+str11);
} input.close();
} public static String swap(String str,int a,int b){
char temp1,temp2;
temp1 = str.charAt(a);
temp2 = str.charAt(b);
char[] chararr = str.toCharArray();
chararr[a] = temp2;
chararr[b] = temp1;
String s2 = new String(chararr);
System.out.println(s2);
return s2;
}
}

  法2、通过StringBuffer类的reverse()方法直接实现反序。

 package *******;

 import java.util.*;

 public class sanweifanxushu_3_8_2 {
public static void main(String[] args){
int n;
System.out.println("请输入一个不以0为结尾的整数");
Scanner input = new Scanner(System.in);
n = input.nextInt();
if(n%10==0){
System.out.println("输入格式错误!输入不能以0结尾!");
}
else{
String str11 = String.valueOf(n);
str11 = ReverseStr(str11);
System.out.println(n+"的反序数是:"+str11);
}
input.close();
} public static String ReverseStr(String str){
return (new StringBuffer(str)).reverse().toString();
} }

  

  不能通过String类型的replace()方法实现反序。

  其他方法待续······

05-28 13:15