Title Case in java有很多方法。
但是如何防止某些常见缩写被转换。例如;
System.out.println(makeProper("JAMES A SWEET");
System.out.println(makeProper("123 MAIN ST SW");
James A Sweet
123 Main St Sw
SW应该保持大写,因为它是South West的缩写。
答案 0 :(得分:4)
您需要某种字典,其中包含不应大写的单词。您可以使用HashSet
。这些方面的东西:
Set<String> whiteList = new HashSet<String>();
whiteList.add("SW");
whiteList.add("NW");
// ...
for (String word : phrase.split()) {
if (!whiteList.contains(word)) {
makeProper(word);
}
}
答案 1 :(得分:2)
没有标准的方法可以做这样的事情。
你可以想出你自己的方法和一组你不想“纠正”的缩写,并从转换中排除
答案 2 :(得分:0)
我能看到的唯一方法是:
1. split your input text into words 2. iterate through words 2.a if word is a abbreviation then 2.a.1 do nothing or convert to uppercase, whatever is required 2.b otherwise 2.b.1 call [makeProper][1] or [capitalize][2]
makeProper或capitalize
显然你必须创建一个方法来判断这个单词是否是一个缩写 :)如何将所有已知缩写保存在一个文件中,并阅读它们。
答案 3 :(得分:0)
Apache Commons-lang包含WordUtils.capitalizeFully,我用它来大写字符串没有问题。希望它能节省你的时间。