【问题标题】:Separating an Integer分隔整数
【发布时间】:2015-06-07 16:13:28
【问题描述】:

我的问题是如何分隔整数中的数字?下面是我拥有的代码,一切都是我想要的,减去我无法将整数中的数字分开的事实。当我当前输入“12345”时,程序输出“12345”,我希望它分隔数字,因此输出为 1 2 3 4 5。

import java.util.*;

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

       Scanner console = new Scanner(System.in);

        String input = "";
        int sum = 0;

        System.out.println( "Please enter a number: " );
        input = console.next();

        int i = 0;

        while( i < input.length() )
        {
            char temp = input.charAt(i);
            sum += Character.getNumericValue(temp);
            i++;
        }

        System.out.println( "The number entered was " + input + ". The sum     of these digits is: " + sum + "." );

    }
}

【问题讨论】:

  • 当你调试这个时,它具体在哪里失败了?
  • 我认为你应该清楚你的问题是什么,因为你的代码 works 对我来说
  • 它不会失败,我只是没有得到我想要的结果。当我输入 12345 时,它返回 12345。我希望它返回 1 2 3 4 5,但很难让它工作。每次我回到这个问题时,我最终都会在一个巨大的圈子里思考,我无法弄清楚如何开始解决我的问题。
  • @davidh 查看here,因为它为“q”返回 26。 (我确实注意到,q 是第十六个字母)。
  • @MouseEvent,你的例子很有趣。谢谢。在 javadoc 中,我们可以看到:大写字母 A-Z('\u0041' 到 '\u005A')、小写字母('\u0061' 到 '\u007A')和全角变体('\uFF21' 到 '\ uFF3A' 和 '\uFF41' 到 '\uFF5A') 形式具有从 10 到 35 的数值。这与 Unicode 规范无关,Unicode 规范不为这些 char 值分配数值。该值与字母表中字母的范围有关。 “Q”排在第 17 位。从 10 到 26(含),您有 17 个位置。计数不错但是方法很奇怪……

标签: java loops integer


【解决方案1】:

你可以写

input.replace("", " ").trim()

而不是 input 中的 System.out.println。例如:

System.out.println( "The number entered was " + input.replace("", " ").trim() + ". The sum     of these digits is: " + sum + "." );

【讨论】:

    【解决方案2】:

    我想这就是你想要的。

        import java.util.*;
    
        public class SNHU_Practice{
             public static void main(String args[]){
    
       Scanner console = new Scanner(System.in);
    
        String input = "";
        StringBuilder result = new StringBuilder("");
        int sum = 0;
    
        System.out.println( "Please enter a number: " );
        input = console.next();
    
        int i = 0;
    
        while( i < input.length() )
        {
            char temp = input.charAt(i);
            result.append(temp + " ");
            i++;
        }
    
        System.out.println( "The number entered was " + input + ". The output string is " + result + "." );
    
    }
    

    }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 1970-01-01
      相关资源
      最近更新 更多