1

我正在尝试实现一个 if 语句来接受由 Java 中的任何字母 ak(大写和小写)组成的任何单词。我的输入是一个字符串。我想它会是这样的:

if(input.equals("[a-kA-K]+")){
    System.out.println("the input was: $0");
}

但我不知道该怎么做。

4

2 回答 2

3

我认为你需要做类似模式匹配的事情。例子:

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)

于 2013-10-25T18:26:40.023 回答
2

如果输入是String,那么您可以使用input.matches("[a-kA-K]+").

文档:http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#matches(java.lang.String)

于 2013-10-25T18:39:59.270 回答