在我的程序中,我得到一个用户输入(String):
例如:
String input = in.nextline();
我想检查(使用if-function)用户/字符串是否包含以下内容:
那么x / x2会发生什么?
if(input.equals(x) && input.equals(x2){
//...
}
答案 0 :(得分:2)
一个不涉及正则表达式的解决方案(因此,可以更容易理解)只是:
String.length()
检查字符串的长度是否为1。String.charAt(index)
检查第一个字符是'a'
与'z'
之间还是'A'
与'Z'
之间,并对ASCII值进行整数比较那些角色。通过降低字符的大小并检查它是否仅在'a'
和'z'
之间,也可以简化这一过程。示例代码为:
private static boolean isValid(String str) {
if (str.length() != 1) return false;
char c = Character.toLowerCase(str.charAt(0));
return c >= 'a' && c <= 'z';
}
你会像
一样使用它String input = in.nextline();
if (isValid(input)) {
// do something wonderful
}
答案 1 :(得分:1)
您可以使用简单的正则表达式:
String input = in.nextline():
if (input.matches("[A-Za-z]{1}")) {
//valid input
}
else {
//invalid input
}
答案 2 :(得分:0)
使用regex
应该做的工作:
Scanner scanner = new Scanner(System.in);
String input = scanner.nextLine();
if (input.matches("[A-z]")) {
System.out.println("Valid input");
}
else {
System.out.println("Wrong input");
}