我需要一些帮助来解析输入到稍后清理并输出的字符串的字符串。
e.g。
String str = " tHis strIng is rEalLy mEssy "
我需要做的是从中解析它看起来像这样:
"ThisStringIsReallyMessy"
因此我基本上需要清理它,然后只将每个单词的第一个字母设置为大写字母,而不会在有人使用数字的情况下中断。
答案 0 :(得分:5)
Apache Commons救援(再次)。与往常一样,值得查看Commons库,不仅仅是针对这个特定问题,还有很多功能。
您可以使用Apache Commons WordUtils.capitalize()来大写字符串中的每个单词。然后replaceAll(" ", "")
会将你的空白分开。
String result = WordUtils.capitalize(str).replaceAll(" ", "");
注意(其他)Brian的评论如下。 replace()
与replaceAll()
背后的选择。
答案 1 :(得分:4)
String str = " tHis strIng is rEalLy mEssy ";
str =str.replace(" ", "");
System.out.println(str);
输出:
tHisstrIngisrEalLymEssy
为了使每个单词中的第一个字母大写,没有可用的内置函数,这个thread有可能的解决方案。
答案 2 :(得分: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
答案 3 :(得分:0)
你是说这个吗?
str = str.replaceAll(" ", "");