我一直试图通过使用character.isDigit&来弄清楚如何忽略空格/数字/字母。用户输入字符串时的character.isLetter方法..你能告诉我吗?
当我尝试使用GETLOAN输入时(没有空格)它运行良好... 但是当我进入e..g之间的空间时。获得贷款,该程序显示错误..
public static void main(String[] args) {
String letters;
char phoneDigit;
Scanner kb = new Scanner(System.in);
System.out.println("Enter letters : ");
letters = kb.next();
for (int i = 0; i < 7; i++) {
phoneDigit = letters.charAt(i);
// Using character.isDigit...
if (Character.isDigit(phoneDigit) == true || Character.isLetter(phoneDigit) == true);
{
if (i == 3) {
System.out.println("-");
} //If
if (phoneDigit >= 'A' && phoneDigit <= 'C'
|| phoneDigit >= 'a' && phoneDigit <= 'c') {
System.out.println("2");
} else if (phoneDigit >= 'D' && phoneDigit <= 'F'
|| phoneDigit >= 'd' && phoneDigit <= 'f') {
System.out.println("3");
} else if (phoneDigit >= 'G' && phoneDigit <= 'I'
|| phoneDigit >= 'g' && phoneDigit <= 'i') {
System.out.println("4");
} else if (phoneDigit >= 'J' && phoneDigit <= 'L'
|| phoneDigit >= 'j' && phoneDigit <= 'l') {
System.out.println("5");
} else if (phoneDigit >= 'M' && phoneDigit <= 'O'
|| phoneDigit >= 'm' && phoneDigit <= 'o') {
System.out.println("6");
} else if (phoneDigit >= 'P' && phoneDigit <= 'S'
|| phoneDigit >= 'p' && phoneDigit <= 's') {
System.out.println("7");
} else if (phoneDigit >= 'T' && phoneDigit <= 'V'
|| phoneDigit >= 't' && phoneDigit <= 'v') {
System.out.println("8");
} else if (phoneDigit >= 'W' && phoneDigit <= 'Z'
|| phoneDigit >= 'W' && phoneDigit <= 'z') {
System.out.println("9");
} // If
} // If
} // For loop
} //PSVM
答案 0 :(得分:0)
从此处删除分号(;)
if (Character.isDigit(phoneDigit) == true || Character.isLetter(phoneDigit) == true);//semicolon
;
表示声明结束。这意味着if
条件已经结束。if
下的语句将始终执行,而不管if
返回什么(true或false)所以{}
下的其余陈述只会表现为非静态块
当我尝试使用GETLOAN输入时(没有空格)它运行良好......但是当我在e..g之间输入一个空格时。获得贷款,该程序显示错误..
当您输入空格时出现错误,因为我在上面指定的原因因为if
下的语句将始终执行
答案 1 :(得分:0)
如果输入两个以空格分隔的单词,例如&#34;获得贷款&#34;,Scanner产生两个输出元素,即kb.next()
的调用只返回&#34;得到&#34;。第二次调用将返回&#34;贷款&#34;。 Scanner类不适合您的目的使用。
使用像
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter String");
String s = br.readLine();
从控制台读取。