.contains方法是否为所有大写字母提供正则表达式?

时间:2018-10-26 17:36:29

标签: java

我是Java的初学者,我正在尝试编写代码,以通过.contains()方法查看字符串中是否存在大写字母。

有没有一种有效的方式来表达类似string.contains((all capital letters));之类的内容?

2 个答案:

答案 0 :(得分:3)

来自javadoc for Pattern

\p{javaLowerCase}   Equivalent to java.lang.Character.isLowerCase()
\p{javaUpperCase}   Equivalent to java.lang.Character.isUpperCase()

这是一个例子:

class Test {
    public static void main(String[] args) {
      System.out.println(args[0].matches(".*\\p{javaUpperCase}.*"));
    }
}

这是它的工作方式:

$ javac Test.java
$ java Test "hello world"
false

$ java Test "capital F"
true

[A-Z]及其变体不同,它适用于所有语言的所有大写字母:

$ java Test 'Σ'  # Greek
true

$ java Test 'Å'  # Norwegian
true

$ java Test 'Я'  # Russian
true

答案 1 :(得分:2)

String.contains不接受正则表达式。它需要一个子字符串,该字符串是纯字符串或另一个CharSequence

如果要检查字符串是否包含大写字母,可以使用正则表达式,如以下示例所示:

boolean containsUppercase = text.matches("^.*[A-Z].*$")

如果在文本中的任意位置找到大写字母,则将返回true