【发布时间】:2017-01-22 20:44:10
【问题描述】:
我正在尝试获取我的代码以防止用户输入中包含数字。
基本上我希望代码执行如下操作:
- 征求意见
- 接收输入
- 测试输入是否包含数字(例如:5matt vs matt)
- 如果包含我想
System.out.println("Error: please do not input a number");的号码
这就是问题所在(以及为什么这不是一个重复的问题):我不能使用循环或其他我们还没有学过的语句。到目前为止,我们学到的唯一正确的语句是 if/else/else if 语句。这意味着我不能使用 for 循环,就像一些答案所暗示的那样。虽然它们是很好的答案,而且很有效,但我会因为使用它们而扣分。
System.out.println("Please input the first name: ");
String name1 = in.next();
System.out.println("Please input the second name: ");
String name2 = in.next();
System.out.println("Please input the third name: ");
String name3 = in.next();
name1 = name1.substring(0,1).toUpperCase() + name1.substring(1).toLowerCase();
name2 = name2.substring(0,1).toUpperCase() + name2.substring(1).toLowerCase();
name3 = name3.substring(0,1).toUpperCase() + name3.substring(1).toLowerCase();
我已经有了这个,但我不知道如何测试输入是否只包含字母。
【问题讨论】:
-
您应该习惯于阅读API documentation。具体来说,
Character有一个isDigit()方法。 -
或者,使用正则表达式,比如
str.matches(".*\\d.*")(其中str是String),它会告诉你如果String包含任何数字。 -
if(name1.matches(".*\\d+.*") || name2.matches(".*\\d+.*") || name3.matches(".*\\d+.*")){ // stuff here; } else { //no nums; } -
“小吐槽:如果我的教授真的教我们一种方法,这不会那么难。” - 我认为你的教授对你很有帮助青睐这里。在现实的编程世界中,您经常会遇到没有人教过您如何解决的小(和大)编程问题。程序员需要学习的一件事是如何自己解决这些问题。
标签: java