【问题标题】:Java enter integer and output spaced digits and sumJava输入整数并输出间隔数字并求和
【发布时间】:2014-05-09 11:07:55
【问题描述】:

我是一个苦苦挣扎的新手,试图完成一个程序分配,并且我的输出重复了一个整数的数字,应该在一行上,但间隔(正确的例子:1234 的数字是:1 2 3 4)。这是错误输出的示例,下面是我的程序。任何指导将不胜感激。

输入一个整数:1234

1234的位数是:1

1234的位数是:2

1234的位数是:3

1234的位数是:4

数字之和 = 10

我的程序:

import java.util.*;                                                              

public class IntegertoIndividualtoSum                                                                                                 
{
   public static void main(String[] args)                                                         
   {

      long integer, digit, sum = 0;
      char digitAt;
      String Stringnum;

      Scanner keyboard = new Scanner(System.in);

      System.out.print("Enter an integer: ");
      integer = keyboard.nextLong();

      Stringnum = String.valueOf(Math.abs(integer));

      for (int count = 0; count < Stringnum.length(); count++)
      {
         digitAt = Stringnum.charAt(count);

         digit = Character.getNumericValue(digitAt);

         sum += digit;

         System.out.println("The digits of " + integer + " are: " + digit); 
      }
         System.out.println("The sum of the digits = " + sum);      
    }   
}

【问题讨论】:

  • should be together on one line, but spaced 是什么阻止你这样做?
  • @SotiriosDelimanolis 我整天盯着屏幕想弄明白。
  • 不要只是盯着它,要分析它。如何打印空格? println 是做什么的?查看javadoc。 Java 有很好的文档记录。
  • @SotiriosDelimanolis 嘿,感谢您的帮助,这是漫长的一天......
  • @SotiriosDelimanolis 必须同意 SolomonSky 的观点......你的态度是多余的。无论我们认为问题多么简单,都没有必要贬低他人。

标签: java string loops integer converter


【解决方案1】:

您正在使用System.out.println 方法,该方法将在末尾打印一个换行符。你可以使用System.out.print,它不会那样做。

另外,请记住,您会多次获得 "The digits of ... are: ..." 部分,因为它在for 循环中。

System.out.print("The digits of " + integer + " are: ");

for (int count = 0; count < Stringnum.length(); count++) {
    // ...
    System.out.print(digit + " "); // add space
}

System.out.println("\nThe sum of the digits = " + sum); // note new-line character '\n'

注意:

  • 您可以在要打印的String 内添加一个换行符 字符"\n"。

【讨论】:

    【解决方案2】:

    您的部分问题是您要为每个数字打印整行。您正在遍历字符串的长度,并在每次迭代时打印输出。

    您的第二个问题是System.out.println 自动将换行符附加到您传入的参数的末尾。如果您使用System.out.print,您将在一行中得到您期望的输出。

    这应该足以让你开始。

    【讨论】:

      【解决方案3】:

      如果你在一个循环中做某事,它会在你每次通过循环时发生。

      在进入循环之前想想你想要做什么,对于循环的每次迭代你想要做什么,以及在完成循环之后一次。

      另外,请注意,您可以调用print(...) 而不是println(...) 来打印而不在最后换行,并且您可以不带参数调用println() 来换行而不打印任何内容.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-08
        • 2015-04-27
        • 2015-06-21
        • 1970-01-01
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 2017-04-07
        相关资源
        最近更新 更多