我一直在使用apache WordUtils来大写字符串中的每个第一个字母,但我只需要将某些单词的第一个字母大写,而不是全部。这就是我所拥有的:
import org.apache.commons.lang.WordUtils;
public class FirstCapitalLetter {
public static void main(String[] args) {
String str = "STATEMENT OF ACCOUNT FOR THE PERIOD OF";
str = WordUtils.capitalizeFully(str);
System.out.println(str);
}
}
我的输出是:
Statement Of Account For The Period Of
我希望我的输出
Statement of Account for the Period of
我怎样才能做到这一点?
答案 0 :(得分:2)
1)创建一组你不想大写的字符串(一组例外):
Set<String> doNotCapitalize = new HashSet<>();
doNotCapitalize.add("the");
doNotCapitalize.add("of");
doNotCapitalize.add("for");
...
2)用空格分割字符串
String[] words = "STATEMENT OF ACCOUNT FOR THE PERIOD OF".split(" ");
3)遍历数组,只将那些不在异常集中的单词大写:
StringBuilder builder = new StringBuilder();
for(String word : words){
String lower = word.toLowerCase();
if(doNotCapitalize.contains(lower){
builder.append(lower).append(" ");
}
else{
builder.append(WordUtils.capitalizeFully(lower)).append(" ");
}
}
String finalString = builder.toString();
答案 1 :(得分:1)
仅当字符串的长度超过3时,才对字符串中的每个单词运行WordUtils.capitalizeFully,这将适用于此特定情况
答案 2 :(得分:0)
你需要打破三个部分的字符串
1.声明
2.帐户
3.期间。