我正在进行一项分配,提示用户输入一个整数,并显示整数,其中数字用空格分隔,并提供这些数字的总和。我有这个工作,但我的个人数字显示是第一个数字的最后一个数字。如何让它显示从头到尾的数字?
这是我到目前为止所做的:
import java.util.*;
public class SeparateAndSum{
static Scanner console = new Scanner(System.in);
public static void main(String[] args)
{
int num, temp, sum;
System.out.print("Enter a positive interger: ");
num = console.nextInt();
System.out.println();
temp = num;
sum = 0;
do
{
temp = num % 10;
sum = sum + num % 10;
num = num / 10;
System.out.print(" " + temp + " ");
}while (num > 0);
System.out.println("The sum of the digits = " + sum);
}
}
答案 0 :(得分:1)
一种选择是使用String#valueOf(Integer)
方法。
示例强>
int input = 12345;
String inputStr = String.valueOf(input);
for(char c : inputStr.toCharArray()) {
// Print out each letter.
}
答案 1 :(得分:0)
如果您使用方法String.valueOf(12345)
您可以使用此库中的方法轻松反转String:
StringUtils.reverse(String.valueOf(input));
答案 2 :(得分:0)
这是解决方案
import java.util.*;
public class SeparateAndSum{
static Scanner console = new Scanner(System.in);
int num, temp, sum;
System.out.print("Enter a positive interger: ");
num = console.nextInt();
System.out.println();
temp = num;
sum = 0;
ArrayList<Integer> values = new ArrayList<>();
do
{
temp = num % 10;
sum = sum + num % 10;
num = num / 10;
values.add(temp);
}while (num > 0);
Collections.reverse(values);
Iterator<Integer> it = values.iterator();
while(it.hasNext()){
System.out.println(" "+it.next()+" ");
}
System.out.println("The sum of the digits = " + sum);
}
}
顺便说一下,你应该导入ArrayList
等。
答案 3 :(得分:0)
我强烈建议将数字放入一个字符串,然后阅读它,解析它,然后根据需要使用数字。如下,
int input = 12345;
String inputString = input + "";
int sum = 0;
for (int i = 0; i < inputString.length(); i++) {
sum += Integer.parseInt(inputString.charAt(i) + "");
}
System.out.println(sum);
然而另一种方式,不是很漂亮..
int input = 12345;
int sum = 0;
while (input > 0) {
int i = (input + "").length() - 1;
int n = (int) (input / Math.pow(10, i));
input -= (int) (n * Math.pow(10, i));
sum += n;
}
System.out.println(sum);