0

在 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 的缩写。

4

4 回答 4

4

您需要某种字典,其中包含不应大写的单词。你可以使用 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);
    }
}
于 2009-10-31T12:04:14.997 回答
2

没有标准的方法来做这样的事情。

您可以提出自己的方法和一组您不希望“更正”的缩写词,并从转换中排除

于 2009-10-31T11:08:04.350 回答
0

我能看到的唯一方法是:

1. 将输入文本拆分为单词  
2. 遍历单词  
      2.a 如果单词是缩写,那么
           2.a.1 什么都不做或转换为大写,无论需要什么  
    2.b 否则  
           2.b.1 调用 [makeProper][1] 或 [capitalize][2]  

makeProper大写
显然你必须创建一个方法来决定这个词是否是一个缩写:) 将所有已知的缩写保存在一个文件中并阅读它们怎么样。

于 2009-10-31T11:52:30.680 回答
0

Apache Commons-lang包含 WordUtils.capitalizeFully,我用它来大写字符串没有问题。希望它可以节省您的时间。

于 2012-09-08T20:47:13.933 回答