Java 字符-数字-整数转换
我让用户输入一个数字字符串,然后for循环应该从字符串中选择每个数字并将其添加到ArrayList中。我相信有人能很快帮我 我的问题如下。当我打印出ArrayList中的所有值时,它会打印出更高的数字,例如1234=49 50 51 52 我认为正在发生的是,它打印出的是ASCII值,而不是数字本身。有人能指出发生这种情况的地点和原因吗 我尝试将int变量barcodeNumberAtI更改为char,这会产生相同的结果 抱歉没有评论,但这只是一个快速的程序Java 字符-数字-整数转换,java,Java,我让用户输入一个数字字符串,然后for循环应该从字符串中选择每个数字并将其添加到ArrayList中。我相信有人能很快帮我 我的问题如下。当我打印出ArrayList中的所有值时,它会打印出更高的数字,例如1234=49 50 51 52 我认为正在发生的是,它打印出的是ASCII值,而不是数字本身。有人能指出发生这种情况的地点和原因吗 我尝试将int变量barcodeNumberAtI更改为char,这会产生相同的结果 抱歉没有评论,但这只是一个快速的程序 int tempNewDigit;
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我编写代码的时间还不够长,不知道如何以及在何处使用调试程序!你能解释一下“=”后面的代码行是什么吗?非常感谢,谢谢!