Java 字符-数字-整数转换

Java 字符-数字-整数转换,java,Java,我让用户输入一个数字字符串,然后for循环应该从字符串中选择每个数字并将其添加到ArrayList中。我相信有人能很快帮我 我的问题如下。当我打印出ArrayList中的所有值时,它会打印出更高的数字,例如1234=49 50 51 52 我认为正在发生的是,它打印出的是ASCII值,而不是数字本身。有人能指出发生这种情况的地点和原因吗 我尝试将int变量barcodeNumberAtI更改为char,这会产生相同的结果 抱歉没有评论,但这只是一个快速的程序 int tempNewDigit;

我让用户输入一个数字字符串,然后for循环应该从字符串中选择每个数字并将其添加到ArrayList中。我相信有人能很快帮我

我的问题如下。当我打印出ArrayList中的所有值时,它会打印出更高的数字,例如1234=49 50 51 52

我认为正在发生的是,它打印出的是ASCII值,而不是数字本身。有人能指出发生这种情况的地点和原因吗

我尝试将int变量barcodeNumberAtI更改为char,这会产生相同的结果

抱歉没有评论,但这只是一个快速的程序

int tempNewDigit;
String barCode, ans;
int barcodeNumberAtI;
ArrayList <Integer> numbers = new ArrayList <Integer>();


public void addNumbers(){

    Scanner s = new Scanner(System.in);

    do{
    System.out.println("Please enter a 12 digit barcode\n");
    barCode = s.nextLine();

    for(int i = 0; i < barCode.length(); i++){

        barcodeNumberAtI = barCode.charAt(i);
        System.out.println(barcodeNumberAtI);
        numbers.add(barcodeNumberAtI);

    }

    System.out.print("Would you like to add another? y/n\n");
    ans = s.nextLine();
    } while (!ans.equals("n"));     
}

public void displayNumbers(){

    for(int i = 0; i < numbers.size(); i++){
        System.out.print(numbers.get(i));
    }

} 
发生在此行:barcodeNumberAtI=barCode.charAti

barCode.charAti返回一个字符,该字符使用其ASCII值转换为整数

改用这个:

barcodeNumberAtI = Character.digit(barCode.charAt(i), 10);
Character.digit所做的是将其第一个参数从类型char转换为第二个参数指定的基数中的相应int。

用户输入的条形码始终是一个数字?应该是的,我只是没有添加任何检查以确保它是BarCodeNumberati,应该是一个字符,而不是一个整数。您说您尝试过,但它不起作用,但目前如果它是一个整数,它将把您的字符转换为整数,在java中,它将获得ascii值。另外,您的ArrayList应该是chars,而不是int。@JarrodRoberson我编写代码的时间还不够长,不知道如何以及在何处使用调试程序!你能解释一下“=”后面的代码行是什么吗?非常感谢,谢谢!