在Java中,你如何标题Case一个字符串,同时保留一些常见的缩写

在Java中有很多方法可以使用Title Case。 但是,如何防止某些常见缩写被转换。例如;
System.out.println(makeProper("JAMES A SWEET");
System.out.println(makeProper("123 MAIN ST SW");

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

要回复问题请先登录注册