假设我们在java中有一个字符串:
String str = "ALL CAPS MATE";
如何更改它,使其看起来像这样但是对于任何单词:
String result = "All Caps Mate";
是否有类似.toUpperCase()或.toLowerCase()的String方法?如果有,我似乎无法找到它。
我很感激字符串方法解决方案。
感谢。
答案 0 :(得分:2)
我认为这可以通过使用apache库for more information
来解决您的问题org.apache.commons.lang3.text.WordUtils
String result= WordUtils.capitalizeFully(str);
对于更复杂的问题,请查看此link
我认为您的问题已经回答here
答案 1 :(得分:2)
apache库包含了一些方法来处理这个问题,正如B' bek Shakya所提到的那样,但是如果你正在寻找一个直接的本机Java解决方案,你可以像评论中提到的Bald Banta那样做。
以下是使用流的代码示例:
public static void main(String[] args) {
String input = "fOo bar";
String transformed = Arrays.stream(input.toLowerCase()
.split(" "))
.map(String::toCharArray)
.map(arr -> {
arr[0] = Character.toUpperCase(arr[0]);
return arr;
})
.map(String::valueOf)
.collect(Collectors.joining(" "));
System.out.println(transformed);
}
使用更常见的循环习语同样的事情:
public static void main(String[] args) {
String input = "fOo bar";
String[] words = input.toLowerCase().split(" ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < words.length; i++) {
char[] word = words[i].toCharArray();
word[0] = Character.toUpperCase(word[0]);
if (i != 0) {
sb.append(" ");
}
sb.append(String.valueOf(word));
}
System.out.println(sb.toString());
}
答案 2 :(得分:1)
来自WordUtils
的{{1}}类具有静态org.apache.commons.lang3.text
方法,可以满足您的需求。你需要在类路径中使用commons lang3 jar。
capitalizeFully