如果我输入类似“-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;
}
答案 0 :(得分:3)
<强>问题:强>
listOfChar[i + 1];
它会将您的char
转换为decimal value
(例如char 3
等于51
)。
click here知道不同字符的十进制值
<强>溶液强>
num[i] = -1 * (listOfChar[i + 1] - '0');
您需要扣除char 0
以使其成为3
,因为十进制中的char 0
为48
,这意味着(51 - 48
)等于{{1} }}。