您的位置:首页 > 职场人生

关于将字符串数字排序的面试问题

2013-07-25 00:24 309 查看
分享一道常见的面试题目,虽然大家都知道,但是往往会忽视掉这个问题。

题目,输入一段字符串数字,将这个字符串数字进行排序,比如 "35219"

代码实现

第一种方法,使用string.length()分隔

代码实现如下

public static void StringToIntArray1(String number){
List<Integer> temps=new ArrayList<Integer>();
for(int i=0;i<number.length();i++){
int value=Integer.parseInt(number.charAt(i)+"");
temps.add(value);
}
System.out.println(temps);
Collections.sort(temps);
System.out.println(temps);
}


运行将打印如下信息

[3, 5, 2, 1, 9]

[1, 2, 3, 5, 9]

第二种方法,使用String.toCharArray()方法

代码实现如下

public static void StringToIntArray2(String number){
List<Integer> temps=new ArrayList<Integer>();
char[] chars=number.toCharArray();
for(char c:chars){
int value=Integer.valueOf(c-0x30);
temps.add(value);
}

System.out.println(temps);
Collections.sort(temps);
System.out.println(temps);
}


运行将打印如下信息

[3, 5, 2, 1, 9]

[1, 2, 3, 5, 9]

下面这3句代码写法是一样的

int value=Integer.parseInt(number.charAt(i)+"");

int value=Integer.valueOf(c-0x30);

int value=Integer.valueOf(c-48);

ox30是16进制的写法,48是10进制写法

Integer.valueOf比较的Ascii码
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: