java练习题。。。。。。。

输入一位四位数,求其各各位上的数字之和。例如:输入的是1234,各个位上的数字之和为1+2+3+4=10。
我的想法是把数字存入数组中,但是不行啊,有人帮我改改我的代码吗??
import java.util.Scanner;
public class add {
int sum=0;
public static void main(String args[]){
Scanner scan=new Scanner(System.in);
System.out.println("请输入数字:");
String ss=scan.nextLine();
int[] ss=ss.toIntArray();
for(int i=0;i<=ss.length;i++)
if(Character.isDigit(ss[i])){
sum=sum+ss[i];

}else{
    System.out.println("输入的内容中有元素不是数字");
}
System.out.println(+sum);
}

}

数字在内存中是二进制存放,你的思路就有问题。首先,你接受到的是字符串,那你的toIntArray()方法就肯定不对的。用下面的试试:
static int [] parseStringToIntArray(String str)
{
int []num = new int[str.length()];
for(int i=0;i<str.length();i++)
{
num[i] = str.charAt(i)-'0';
}

return num;
}
把你接收到的当做string处理代码大致这样。但如果是数值型,就考虑/10的次方的结果自己在写一个方法去转。

 public static void main(String[] args) {
        int k = 0;
        int m = 0;
        System.out.println("输入一个四位数:");
        Scanner input = new Scanner(System.in);
        int nums = input.nextInt();
        while (nums != 0) {
            m = nums % 10;
            nums = nums / 10;
            k = k + m;
        }
        System.out.println("所有位数和为:" + k);
    }

1楼的挺好的,或者用do while

import java.util.Scanner;

public class Sum4Num {

    public static void main(String[] args) {
        int k = 0;
        int m = 0;
        System.out.println("输入一个四位数:");
        Scanner input = new Scanner(System.in);
        int nums = input.nextInt();

        do {
            m = nums % 10;
            nums = nums / 10;
            k = k + m;
        } while (nums != 0);

        System.out.println("所有位数和为:" + k);
    }
}

public static void main(String args[]){
int sum=0;
Scanner scan=new Scanner(System.in);
System.out.println("请输入数字:");
String ss=scan.nextLine();
char[] uu=ss.toCharArray();

    for(int i=0;i<=uu.length-1;i++) {
        System.out.println(uu[i] + "");
        if (Character.isDigit(uu[i])) {
            int num=Integer.parseInt(String.valueOf(uu[i]));
            sum = sum + num;
        } else {
            System.out.println("输入的内容中有元素不是数字");
        }
    }
    System.out.println(sum);
}

自古一楼出正解,不过用内置函数也行,

一楼二楼都是正解,思路有点不一样,但是都是正确思路