char数字到整数转换

时间:2017-07-26 16:53:42

标签: java

我让用户输入一串数字,然后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));
    }

} 

1 个答案:

答案 0 :(得分:2)

发生在这一行:barcodeNumberAtI = barCode.charAt(i);

barCode.charAt(i)返回char,使用int值将其转换为ASCII

请改用:

barcodeNumberAtI = Character.digit(barCode.charAt(i), 10);

Character.digit所做的是将第一个参数从类型char转换为第二个参数指定的基数中的相应intHere's a link to the documentation