在 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 的缩写。
在 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 的缩写。
您需要某种字典,其中包含不应大写的单词。你可以使用 a 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.a 如果单词是缩写,那么 2.a.1 什么都不做或转换为大写,无论需要什么 2.b 否则 2.b.1 调用 [makeProper][1] 或 [capitalize][2]
makeProper或大写
显然你必须创建一个方法来决定这个词是否是一个缩写:) 将所有已知的缩写保存在一个文件中并阅读它们怎么样。
Apache Commons-lang包含 WordUtils.capitalizeFully,我用它来大写字符串没有问题。希望它可以节省您的时间。