2013-03-16 82 views
0

加入我有这样的方法:ArrayList中的整数由48

public ArrayList Arraylistify(){ 
    for(int x = 0; x < value.length(); x++){ 
     if(Character.getNumericValue(value.charAt(x)) >= 10 && Character.getNumericValue(value.charAt(x)) <= 26){ 
      for(char y = 'A'; y < 'Z'; y++){ 
       if(Character.toString(y).equalsIgnoreCase(Character.toString(value.charAt(x)))){ 
        numbers.add(Character.getNumericValue(y)); 
        break; 
       } 
      } 
     } 
      numbers.add((int) value.charAt(x)); 
    } 
    return numbers; 
} 

这是应该采取从字符串值中的字符(这将只包含数字和字母),并把它们放到一个ArrayList(转换将这些字母转换为它们的数值)。因此,如果字符串是4567A,ArrayList将按顺序包含一个4,一个5,一个6,一个7和一个10。然而,ArrayList中的所有整数都被添加了48。这是什么原因造成的?我该如何解决?我应该选择不同的方法来做到这一点?请回复。谢谢。

+5

HTTP如何://en.wikipedia.org/wiki/ASCII ... – 2013-03-16 23:37:23

+4

我认为你得到你的性格数字的ASCII值。 – 2013-03-16 23:37:59

+2

我会出现你试图将十六进制转换为整数(排序...)。那......不会是你怎么做的。 – 2013-03-16 23:39:50

回答

0

public static List<Integer> toList(String value) { 
    List<Integer> list = new ArrayList<>(); 
    for(char ch: value.toCharArray()) 
     list.add(Character.getNumericValue(ch)); 
    return list; 
}