Java 我已经从Char数组创建了一个Int数组,现在值为don';不匹配

Java 我已经从Char数组创建了一个Int数组,现在值为don';不匹配,java,arrays,Java,Arrays,好的,所以当我用这个代码而不是9999时,每9个就有57个?Java新手非常困惑,如有任何帮助,将不胜感激 public int[] getNumber(){ String newNum; Scanner input = new Scanner( System.in ); System.out.println( "Please enter four digits" ); newNum = input.nextLine(); char[] list =

好的,所以当我用这个代码而不是9999时,每9个就有57个?Java新手非常困惑,如有任何帮助,将不胜感激

public int[] getNumber(){

    String newNum;

    Scanner input = new Scanner( System.in );

    System.out.println( "Please enter four digits" );
    newNum = input.nextLine();
    char[] list = newNum.toCharArray();
    int[] numArray = new int[newNum.length()];

    for (int i = 0; i < newNum.length(); i++){
        numArray[i] = list[i];
    }

    return numArray;
}   
public int[]getNumber(){
字符串newNum;
扫描仪输入=新扫描仪(System.in);
System.out.println(“请输入四位数字”);
newNum=input.nextLine();
char[]list=newNum.toCharArray();
int[]numaray=newint[newNum.length()];
for(int i=0;i
是。57是最重要的。这是意料之中的。如果需要字符的数值,请使用

numArray[i] = list[i] - '0';

这是因为9被视为在ASCII中具有int值57的字符。您需要将字符或字符串解析为数字,而不仅仅是转换/存储其数值charactervalue,这将与其数值不同。这样做非常有效,是否还有其他实例可以使用“0”获取数值?“0”只是
((char)48)
的另一种语法。你们必须明白,对于计算机来说,字符和其他数字一样只是数字。Java语言允许键入“0”而不是((char)48),因为它更加直观和可读。但实际上它是一个2字节长的numner,其值为481'是49,'2'是50,等等。