我需要检查我的字符串“sir”中是否有一些大写字母,如果是,我需要将该字母的值分配给另一个字符串,然后删除该字母。我的第一部分看起来像这样:
Pattern p = Pattern.compile("[^A-Z]", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(sir);
boolean b = m.find();
这样我检查是否有任何大写字母,然后我需要添加分配&删除。我不确定这是否有效。我也发现了 另一种方式:
StringTokenizer stringTokenizer = new StringTokenizer(sir);
while (stringTokenizer.hasMoreTokens()) {
String a = stringTokenizer.nextToken();
if(a.equals(a.toUpperCase())) {
upper = a;
}
}
upper每次都返回null,即使sir = cL
有没有人知道如何:
任何帮助都会非常感激。
答案 0 :(得分:1)
从字符串中删除所有大写字母:
String repl = sir.replaceAll("[A-Z]+", "");
将字符串中的所有大写字母复制到另一个字符串:
String upper = sir.replaceAll("[^A-Z]+", "");
答案 1 :(得分:0)
这将为您提供字符串中的所有大写字母:
String inputString;
String outputString = "";
for (int i = 0; i < inputString.length; i++) {
c = inputString.charAt(i);
ouptutString += Character.isUpperCase(c) ? c + " " : "";
}
答案 2 :(得分:0)
您也可以尝试“番石榴”库。在那里你可以找到一组用于字符串操作的类。其中CharMatcher(https://code.google.com/p/guava-libraries/wiki/StringsExplained#CharMatcher)
简单的代码示例可以是:
String string = "ABcdEFgh45";
String withoutUpperCase = CharMatcher.JAVA_UPPER_CASE.removeFrom(string);
//returns cdgh45