输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。
作者:互联网
package cn.itcast.test06;
public class Test08 {
// 方法1
public static int method(int num){
boolean flag=num>0?true:false;
num=flag?num:-num;
String str = String.valueOf(num);
boolean[] map=new boolean[10];
int ret=0;
for (int i = str.length()-1; i >=0 ; i--) {
int index=str.charAt(i)-'0';
if(!map[index]){
ret=ret*10+str.charAt(i)-'0';
map[index]=true;
}
}
return flag?ret:-ret;
}
// 方法2
public static int method02(int num){
boolean flag=num>0?true:false;
num=flag?num:-num;
boolean[] map= new boolean[10];
StringBuilder builder=new StringBuilder();
while (num!=0){
int t=num%10;// 把 最后一位取出来
num/=10; //把最后一位除去
if(!map[t]){
builder.append(t);
map[t]=true;
}
}
int ret=Integer.valueOf(String.valueOf(builder));
return flag? ret:-ret;
}
public static void main(String[] args) {
int num=123456789;
int method = method(num);
System.out.println(method);
int i = method02(num);
System.out.println(i);
}
}
标签:map,int,ret,flag,num,整数,boolean,从右 来源: https://blog.csdn.net/NULLprointex/article/details/119910482