使用for循环查找字符数组中的数字总和

Akh*_*lly 2 java arrays for-loop

int sum=0;
Scanner sc=new Scanner(System.in);
System.out.println("enter number");
int y=sc.nextInt();
String s=String.valueOf(y);
char [] ch=s.toCharArray();

for(int i=0;i<ch.length;i++)
{
    sum+=ch[i];
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

如果我输入数字'111'我会得到147!我想得到3.我找不到错误.

我将一个整数转换为字符串到字符数组,以便我可以在for循环中使用它.我知道这是一个我错过的愚蠢的错误,但无法找到它.

Tim*_*sen 5

在原始代码中,您int通过转换值来对char值进行求和.但是,在您的情况下,您希望将这些char值的实际数值表示相加.将你的for循环改为:

for(int i=0;i<ch.length;i++) {
    sum += Character.getNumericValue(ch[i]);
}
Run Code Online (Sandbox Code Playgroud)