将字符串转换为字符数组,将int数组转换为linkedlist

时间:2014-06-22 00:16:20

标签: java

如果我输入类似“-32323”的字符串,我的输出是[-50,-51,-50,-51,-50],我不确定这些值来自何处。我想要的输出是[-3,-2,-3,-2,-3]

static LinkedList<Integer> list = new LinkedList<Integer>();

public static LinkedList<Integer> method(String s) 
{

        char[] listOfChar;
        int[] num;

        list = new LinkedList<Integer>();

        listOfChar = s.toCharArray();

        if (listOfChar[0] == '-') {
            num = new int[listOfChar.length - 1];
            for (int i = 0; i < num.length; i++) {
                num[i] = -1 * listOfChar[i + 1];
            }
        }

        else {
            num = new int[listOfChar.length];
            for (int i = 0; i < num.length; i++) {
                num[i] = listOfChar[i];
            }
        }

        for (Integer x : num) {
            list.push(x);
        }
        return list;

}

1 个答案:

答案 0 :(得分:3)

<强>问题:

listOfChar[i + 1]; 

它会将您的char转换为decimal value(例如char 3等于51)。

click here知道不同字符的十进制值

<强>溶液

 num[i] = -1 * (listOfChar[i + 1] - '0');

您需要扣除char 0以使其成为3,因为十进制中的char 048,这意味着(51 - 48)等于{{1} }}。