java高手来帮帮忙!~

来源:百度知道 编辑:UC知道 时间:2024/05/15 18:41:55
请用户输入一个数字,求这个数字各个位上的和,并显示该数是几位数!?(注意:不确定该数字是几位数,循环提取每个位上的数字,累计求和.)

帮帮忙解决下这个问题,下面事我现在写的代码。我不知道怎么在循环里强制转换字符串的类型

import java.util.Scanner;

public class text {

public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner s = new Scanner(System.in);
String a=s.next();

char arr[] = a.toCharArray();
int b;
b=a.length();
System.out.println(b);
int c=0;
for(int i=0;i<=b;i++){

c=c+arr[i];

}
System.out.println("数每个位数的和为"+c+"这是个"+b+"位的数");
}

}

稍微改下就可以了,for(int i=0;i<=b;i++)这个没有=,然后就是arr[]取得是哈希值,所以要减去48
import java.util.Scanner;

public class text {

public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner s = new Scanner(System.in);
String a=s.next();

char arr[] = a.toCharArray();
int b;
b=a.length();

int c=0;
for(int i=0;i<b;i++){

c=c+arr[i]-48;

}
System.out.println("数每个位数的和为"+c+"这是个"+b+"位的数");
}

}

用parseInt函数就行
比如 int n = Integer.parseInt(String s)

试一试: c = c + (arr[i] - '0');