一个整数颠倒排列
a=456234,求b=432654
第一种:不使用String,仅使用循环
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
int al=String.valueOf(a).length();//参数位数
int b=0;//最后值
for (int i = al; i>0; i--) {
//修改后的最后一位
if(i==1)b+=a/((int) Math.pow(10,al-1));
//修改后的第一位
if(i==al && al>1){
int last=a%10;
b+=last*(int) Math.pow(10,al-1);
}
//修改后的中间部分
if(i>2){
int last=a/((int) Math.pow(10,i-1));
int two=a/((int) Math.pow(10,i-2))-(last*10);
b+=two*((int) Math.pow(10,al-i+1));
}
}
System.out.println(b);
第一种:使用String,循环
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
String sa=String.valueOf(a);
String s="";//最后值
for(int i=sa.length()-1;i>=0;i--){
StringBuffer ab=new StringBuffer();
s=ab.append(s).append(String.valueOf(sa.charAt(i))).toString();
}
System.out.println(s);
注:
1)如果要操作少量的数据用 String;
2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;
3)单线程操作字符串缓冲区下操作大量数据 StringBuilder