繁体   English   中英

检查字符串的大写字母并找到位置

[英]Check String for Uppercase letter and find position

我需要检查我的字符串“先生”中是否有一些大写字母,如果是,我需要将该字母的值分配给另一个字符串,然后删除该字母。 我的第一部分看起来像这样:

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; 
        }
    }

即使sir = cL,上层每次都返回null

有谁知道一种方法:

  1. 从字符串获取大写字母和正数
  2. 删除它

任何帮助将非常感激。

要从字符串中删除所有大写字母:

String repl = sir.replaceAll("[A-Z]+", "");

要将所有大写字母从一个字符串复制到另一个字符串:

String upper = sir.replaceAll("[^A-Z]+", "");

这将为您提供字符串中的所有大写字母:

String inputString;

String outputString = "";

for (int i = 0; i < inputString.length; i++) { c = inputString.charAt(i); ouptutString += Character.isUpperCase(c) ? c + " " : ""; }

您也可以尝试“番石榴”库。 在这里,您可以找到一组用于字符串操作的类。 其中包括CharMatcher( https://code.google.com/p/guava-libraries/wiki/StringsExplained#CharMatcher

简单的代码示例可以是:

 String string = "ABcdEFgh45";
 String withoutUpperCase = CharMatcher.JAVA_UPPER_CASE.removeFrom(string);
 //returns cdgh45

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM