我是Java的初学者,我正在尝试编写代码,以通过.contains()
方法查看字符串中是否存在大写字母。
有没有一种有效的方式来表达类似string.contains((all capital letters));
之类的内容?
答案 0 :(得分:3)
\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
。