Java 如何显示整数输入的各个数字?

Java 如何显示整数输入的各个数字?,java,Java,我正在处理一个赋值,它会提示用户输入一个整数,并用空格分隔的数字显示该整数,并提供这些数字的总和。我有这个工作,但我的个人数字显示是从最后一个数字到第一个。如何使其显示从第一个到最后一个数字 以下是我到目前为止的情况: import java.util.*; public class SeparateAndSum{ static Scanner console = new Scanner(System.in); public static void main(String[] a

我正在处理一个赋值,它会提示用户输入一个整数,并用空格分隔的数字显示该整数,并提供这些数字的总和。我有这个工作,但我的个人数字显示是从最后一个数字到第一个。如何使其显示从第一个到最后一个数字

以下是我到目前为止的情况:

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);
    }
}

一个选项是使用
String#valueOf(Integer)
方法

示例

int input = 12345;

String inputStr = String.valueOf(input);

for(char c : inputStr.toCharArray()) {
    // Print out each letter.
}

如果使用方法String.valueOf(12345)

您可以使用此库中的方法轻松反转字符串:

这是解决办法

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);
 }
}
import java.util.*;
公共类分隔符{
静态扫描仪控制台=新扫描仪(System.in);
int num、temp、sum;
System.out.print(“输入正整数:”);
num=console.nextInt();
System.out.println();
温度=数值;
总和=0;
ArrayList值=新的ArrayList();
做
{
温度=数值%10;
总和=总和+num%10;
num=num/10;
值。添加(临时);
}而(num>0);
集合。反向(值);
迭代器it=values.Iterator();
while(it.hasNext()){
System.out.println(“+it.next()+”);
}
System.out.println(“数字之和=“+sum”);
}
}

顺便说一句,您应该导入
ArrayList
等。

我强烈建议您将数字放入字符串中,然后读取、解析,然后根据需要使用数字。如下:

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);

inttemp=(int)(num/Math.Pow(10,Math.Log10(num))将返回第一位数字。想一想如何在循环中使用它。你的代码对我来说似乎没问题。请注意,
“JAVA编程,我卡住了”
对于StackOverflow问题来说是一个糟糕的标题,因为它没有告诉我们任何用法。我们已经知道你被卡住了,否则你就不会问问题了,而且我们已经知道它涉及Java,因为你的问题有一个Java标签。在未来,请考虑使用更多的信息标题标题,总结你的实际问题。这样做将帮助您获得更好的帮助。谢谢下次我需要帮助写标题时,我一定会问您。我们还没有到数组。我去了网站,将字符串反转会很好,不过我需要在每个数字之间留一个空格。我还在研究…你可以简单地使用你的方法,在打印数字的那一行,把它们添加到一个字符串中,然后你可以反转它。字符串s=s+“”+tempI尝试了太多不同的事情,我比以前更困惑了。我现在想的是像你建议的那样使用方法字符串,在提取数字并求和之前将其反转。但是我不熟悉使用string方法。我看了那个网站,但我不明白如何将输入作为字符串,将其反转,然后将其转换为整数。我不知道我是否让这变得更难,或者我只是在我的书中找不到步骤。我们还没有到数组。然后我建议您使用
String
输入,然后对其进行操作。
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);