Java valueOf(整数)始终返回1

Java valueOf(整数)始终返回1,java,string,integer,Java,String,Integer,我试图解析字符串“2”,并在ArrayList中添加每个符号“2”。 这是我的代码: charCounter = 0; rawSize = 0; while(charCounter < line.length()){ a_char = line.charAt(charCounter); if(a_char != ' '){ System.out.print(String.valueOf(a_char)+" "); temp

我试图解析字符串“2”,并在ArrayList中添加每个符号“2”。 这是我的代码:

charCounter = 0;
rawSize = 0;
while(charCounter < line.length()){
    a_char = line.charAt(charCounter);
       if(a_char != ' '){
           System.out.print(String.valueOf(a_char)+" ");
           temp = Character.digit(a_char, 10);
           myIntArray.add(temp);
           System.out.println(String.valueOf(myIntArray.get(rawSize)));
           rawSize++;
    }
    charCounter++;
}
以下是我的主要功能:

公共静态void main(字符串[]args){

当我将:
a_char=line.charAt(charCounter);
替换为
a_char='5';
, 我的输出:

5 5
5 5
5 5
5 5
5 5
5 5
5 5
5 5
5 5

无法理解为什么会这样。

有一种更简单的方法,使用字符串的
split()
方法来实现您想要的:

String[] lines = line.split(" ");
for(String s : lines)
   myIntArray.add(Integer.parseInt(s))

我刚刚重写了您的代码,以便能够编译它,并且它工作正常:

String line = "2 2 2";
ArrayList myIntArray = new ArrayList();
int charCounter = 0;
int rawSize = 0;
while(charCounter < line.length()){
    char a_char = line.charAt(charCounter);
    if(a_char != ' '){
        System.out.print(String.valueOf(a_char)+" ");
        int temp = Character.digit(a_char, 10);
        myIntArray.add(temp);
        System.out.println(String.valueOf(myIntArray.get(rawSize)));
        rawSize++;
    }
    charCounter++;
}
更新: 我已经根据您的更新编辑了我的代码。同样,它工作正常,但是
String.valueOf(…)
确实总是返回1。这是因为在外部
中,当
将rawSize赋值为零时,您将始终打印
myIntArray
的前三个元素,即“1”。尝试打印整个
myIntArray
,您将看到它按预期填充


另外,正如另一位回复者所建议的,确实有很多更简洁、更好的方法来实现这一点。

请提供更多的上下文,并发布新的问题。不要用不同的问题更新同一个问题。我的主要功能是。我不明白,哪里转换不好
5 5
5 5
5 5
5 5
5 5
5 5
5 5
5 5
5 5
String[] lines = line.split(" ");
for(String s : lines)
   myIntArray.add(Integer.parseInt(s))
String line = "2 2 2";
ArrayList myIntArray = new ArrayList();
int charCounter = 0;
int rawSize = 0;
while(charCounter < line.length()){
    char a_char = line.charAt(charCounter);
    if(a_char != ' '){
        System.out.print(String.valueOf(a_char)+" ");
        int temp = Character.digit(a_char, 10);
        myIntArray.add(temp);
        System.out.println(String.valueOf(myIntArray.get(rawSize)));
        rawSize++;
    }
    charCounter++;
}
2 2
2 2
2 2