import java.util.Scanner;
public class DigitSumming {
public static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
System.out.println ("Please enter a sentence: ");
String userSentence = in.next();
//writing for loop to check each character
int sum = 0;
int i;
for (i = 0; i < userSentence.length(); i++) {
if (Character.isDigit(userSentence.charAt(i))){
System.out.println("number: "+ userSentence.charAt(i));
}
}
}
}
这是我运行程序时得到的结果:
Please enter a sentence:
7 ate 9
输出:
number: 7
答案 0 :(得分:0)
您应该在nextLine
上调用Scanner
。
否则,将使用默认分隔符(空格),因此userSentence
仅为"7"
。
来自API:
查找并返回此扫描仪的下一个完整令牌。完整的标记之前和之后是与分隔符模式匹配的输入。
......还有:
扫描程序使用分隔符模式将其输入分解为标记,分隔符模式默认匹配空格。
答案 1 :(得分:0)
您必须使用nextLine()
而不是next()
。
更正了代码段:
import java.util.Scanner;
public class DigitSumming {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println ("Please enter a sentence: ");
/* Corrected Here */
String userSentence = in.nextLine();
//writing for loop to check each character
int sum = 0, i;
for (i = 0; i < userSentence.length(); i++) {
if (Character.isDigit(userSentence.charAt(i))){
System.out.println("number: "+ userSentence.charAt(i));
}
}
}
}
输入:
7 ate 9
输出:
number: 7
number: 9