我正在尝试实现一个 if 语句来接受由 Java 中的任何字母 ak(大写和小写)组成的任何单词。我的输入是一个字符串。我想它会是这样的:
if(input.equals("[a-kA-K]+")){
System.out.println("the input was: $0");
}
但我不知道该怎么做。
我正在尝试实现一个 if 语句来接受由 Java 中的任何字母 ak(大写和小写)组成的任何单词。我的输入是一个字符串。我想它会是这样的:
if(input.equals("[a-kA-K]+")){
System.out.println("the input was: $0");
}
但我不知道该怎么做。
我认为你需要做类似模式匹配的事情。例子:
Pattern p = Pattern.compile("a*b");
Matcher m = p.matcher("aaaaab");
boolean b = m.matches();
然后
if(b)
{
//Your code.
}
来自@yshavit 评论(这很重要):
值得注意的是,Pattern p 对象是不可变的和线程安全的,并且可以共享(例如,通过创建一次 Pattern 并将其存储在私有静态 final 中)。如果您不关心每次都创建 Pattern,并且不需要访问正则表达式中捕获的组,您也可以调用静态 Pattern.matches(pattern, stringToLookIn)
如果输入是String
,那么您可以使用input.matches("[a-kA-K]+")
.
文档:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#matches(java.lang.String)