2

我需要一些帮助来解析输入到稍后被清理和输出的字符串。

例如

String str = " tHis  strIng is  rEalLy mEssy  "

我需要做的是让它看起来像这样:

"ThisStringIsReallyMessy"

所以我基本上需要清理它,然后只将每个单词的第一个字母设置为大写,如果有人使用数字,它不会中断。

4

4 回答 4

5

Apache Commons 来救援(再次)。与往常一样,值得查看 Commons 库,不仅仅是针对这个特定问题,而是针对许多功能。

您可以使用 Apache Commons WordUtils.capitalize()将字符串中的每个单词大写。然后 areplaceAll(" ", "")将把你的空格装箱。

String result = WordUtils.capitalize(str).replaceAll(" ", "");

注意(其他)Brian 在下面的评论。replace()vs背后的replaceAll()选择

于 2012-09-25T16:55:40.770 回答
4
String[] tokens = " tHis  strIng is  rEalLy mEssy  ".split(" ");
StringBuilder result = new StringBuilder();
for(String token : tokens) {
    if(!token.isEmpty()) {
        result.append(token.substring(0, 1).toUpperCase()).append(token.substring(1).toLowerCase());
     }
}
System.out.println(result.toString()); // ThisStringIsReallyMessy
于 2012-09-25T16:58:19.260 回答
4
   String str = " tHis  strIng is  rEalLy mEssy  ";
   str =str.replace(" ", "");
   System.out.println(str);

输出:

tHisstrIngisrEalLymEssy

对于每个单词的首字母大写,没有可用的内置函数,这个线程有可能的解决方案。

于 2012-09-25T16:49:18.637 回答
0

你是这个意思吗?

str = str.replaceAll(" ", "");
于 2012-09-25T16:50:16.650 回答