我的程序让用户输入一个5位数的数字,我需要一种方法来取5位整数并将所有数字加在一起。例如,用户输入26506,程序执行2 + 6 + 5 + 0 + 6并返回19.我相信这可以通过某种循环完成但不确定从哪里开始。
为了澄清,这个整数可以是任何东西,只需要5位数。
答案 0 :(得分:6)
从我的脑海中,您可以将其转换为字符串并迭代每个char,并使用(charAt(position) - '0')累积值。我现在远离java编译器,但我想这应该可行。只需确保您只有数字数据。
答案 1 :(得分:5)
int sum = 0;
while(input > 0){
sum += input % 10;
input = input / 10;
}
答案 2 :(得分:3)
每次modulus
10
后,您都会在ones
处获得数字。每次divide
您的号码加10,您将获得除ones
数字以外的所有数字。因此,您可以使用此方法将所有数字相加: -
22034 % 10 = 4
22034 / 10 = 2203
2203 % 10 = 3
2203 / 10 = 220
220 % 10 = 0
220 / 10 = 22
22 % 10 = 2
22 / 10 = 2
2 % 10 = 2
添加所有这些..(4 + 3 + 0 + 2 + 2 = 11)
答案 3 :(得分:2)
你需要除以模数:
26506 / 10000 = 2
26506 % 10000 = 6506
6506 / 1000 = 6
6506 % 1000 = 506
506 / 100 = 5
506 % 100 = 6
6 / 10 = 0
6 % 10 = 6
6 / 1 = 6
因此,每个除法的结果是该base10位的数字,为了得到下一个较小的有效数字,你取模数。然后重复一遍。
答案 4 :(得分:2)
如果您的输入是字符串:
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Enter your number: ");
try{
BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
String input = bufferRead.readLine();
char[] tokens;
tokens = input.toCharArray();
int total=0;
for(char i : tokens){
total += Character.getNumericValue(i);
}
System.out.println("Total: " + total);
}catch(IOException e){
e.printStackTrace();
}
}
如果您的输入是整数,请使用
String stringValue = Integer.toString(integerValue);
并将其插入。
答案 5 :(得分:0)
有两种方法:
使用以下代码取消数字:(假设数字仍为5个字符)
int unpack(int number)
{
int j = 0;
int x = 0;
for(j = 0; j < 5; j++){
x += number % 10;
number = number / 10;
}
return x;
}
将其放入字符串并选择单个字符并解析 整数:
int sumWithString(String s)
{
int sum = 0;
for(int j = 0;j < 5;j++){
try{
sum += Integer.parseInt(""+s.charAt(j));
}catch(Exception e){ }
}
return sum;
}
答案 6 :(得分:0)
Scanner scanner = new Scanner(System.in);
System.out.print("Enter number: ");
String s = scanner.nextLine();
char[] a = s.toCharArray();
int total = 0;
for(char x: a){
try {
total += Integer.parseInt(""+x);
} catch (NumberFormatException e){
// do nothing
}
}
System.out.println(total);
这将省略任何非数字字符。