我正在尝试创建一个游戏,用户输入一个短语,但该短语只能是小写字母(如果你明白我的意思)。因此,程序将使用do-while循环提示用户。如果用户输入(1234567890,或!@#$%^&*或ASDFGH )之类的内容,循环应该重新提示用户只输入小写字母。我对java非常陌生,所以我的代码将会变得非常糟糕。下面是:
import java.util.Scanner;
public class Program05
{
public static void main(String[] args)
{
Scanner scanner01 = new Scanner(System.in);
String inputPhrase;
char inputChar;
do {
System.out.print("Enter a common phrase to begin!: ");
inputPhrase = scanner01.nextLine();
} while (!inputPhrase.equals(Character.digit(0,9)));
}
}
发布于 2013-07-10 23:55:59
使用带有适当正则表达式的String.matches()
来测试它是否都是小写字母:
inputPhrase.matches("[a-z ]+") // consists only of characters a-z and spaces
因此,您的循环将如下所示:
do {
System.out.print("Enter a common phrase to begin!: ");
inputPhrase = scanner01.nextLine();
} while (!inputPhrase.matches("[a-z ]+"));
发布于 2013-07-11 00:03:56
试试这个,我编译了一下,它运行得很好
public static void main(String[] args)
{
Scanner scanner01 = new Scanner(System.in);
String inputPhrase = "";
char inputChar;
while(!inputPhrase.equals("exit")){
System.out.print("Enter a common phrase to begin!: ");
inputPhrase = scanner01.nextLine();
for(int i = 0; i < inputPhrase.length(); i++){
if(!Character.isLetter(inputPhrase.charAt(i))
||Character.isUpperCase(inputPhrase.charAt(i))){
System.out.println("Input must be lowercase characters");
break;
}
}
}
}
}
https://stackoverflow.com/questions/17582800
复制相似问题