【发布时间】: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 个位置。计数不错但是方法很奇怪……