How can I change an all caps string to capitalize on first letter and then first letter following each space? (Java)
本问题已经有最佳答案,请猛点这里访问。
假设我们在Java中有一个字符串:
1 |
我怎样才能改变它,使它看起来像这样,但任何一个字:
1 |
是否有类似于.toUpperCase()或.toLowerCase()的字符串方法?如果有的话,我似乎找不到。
我希望得到一个字符串方法的解决方案。
谢谢。
Apache库包含一些方法来处理这一点,如B'Bek SkaYa和评论所提到的,但是如果你正在寻找一个直接的原生爪哇解决方案,你会在评论中提到Bald BANTA。
下面是使用流的代码示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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); } |
同样,使用更常见的循环习语:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 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()); } |
我认为这可以通过使用Apache库获得更多信息来解决您的问题。
org.apache.commons.lang3.text.WordUtils
1 |
要了解更复杂的信息,请查看此链接
我想你的问题已经回答了
来自
1 2 3 | import org.apache.commons.lang3.text.WordUtils; WordUtils.capitalizeFully(input); |