![](/img/trans.png)
[英]how to capitalize first letter after period in each sentence using java?
[英]Capitalize First Character after space of a String If complete sentence is uppercase java
我有一些問題,如果所有句子都是大寫的話,如何大寫字符串的第一個單詞。 例如:“VESSEL ONE(L)INC”我想要的輸出:“Vessel One(L)Inc”
目前,我應用此代碼,但這僅適用於小寫的所有句子
String source = "vessel two management sdn bhd";
StringBuffer res = new StringBuffer();
String[] strArr = source.split(" ");
for (String str : strArr) {
char[] stringArray = str.trim().toCharArray();
stringArray[1] = Character.toLowerCase(stringArray[1]);
str = new String(stringArray);
res.append(str).append(" ");
}
res.toString().trim()
有人可以幫幫我嗎?
首先,請首選StringBuilder
不是StringBuffer
。 其次,您可以使用WordUtils.capitalizeFully(String)
類的
String source = "VESSEL ONE (L) INC";
String capitalized = WordUtils.capitalizeFully(source);
或者(如果你不能使用apache commons)你可以寫自己喜歡的
private static String capitalizeFully(String str) {
StringBuilder sb = new StringBuilder();
boolean cnl = true; // <-- capitalize next letter.
for (char c : str.toCharArray()) {
if (cnl && Character.isLetter(c)) {
sb.append(Character.toUpperCase(c));
cnl = false;
} else {
sb.append(Character.toLowerCase(c));
}
if (Character.isWhitespace(c)) {
cnl = true;
}
}
return sb.toString();
}
public static void main(String[] args) {
String source = "VESSEL ONE (L) INC";
System.out.println(capitalizeFully(source));
}
如果使用lib,您可以嘗試使用WordUtils 。 是一個選擇。
另一種方法可能是在應用上面指定的操作之前將整個字符串轉換為toLowerCase
。
試試這個
StringBuffer sb = new StringBuffer();
Matcher m = Pattern.compile("\\b.+?\\b").matcher(source);
while(m.find()) {
String s = m.group().substring(0,1).toUpperCase() + m.group().substring(1).toLowerCase();
m.appendReplacement(sb, s);
}
String res = sb.toString();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.