在Java中,如何在保留一些常用缩略语的同时给字符串加上大小写标题

在Java中,如何在保留一些常用缩略语的同时给字符串加上大小写标题,java,title-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应保持大写,因为它是西南的缩写 做这样的事没有标准的方法 您可以提出自己的方法和一组不希望“更正”的缩写,并将does从转换中排除没有标准的方法来做这样的事情 您可以提出

有很多方法可以解决这个问题

但是如何防止一些常用缩写被转换呢。比如,

System.out.println(makeProper("JAMES A SWEET");
System.out.println(makeProper("123 MAIN ST SW");

James A Sweet
123 Main St Sw

SW应保持大写,因为它是西南的缩写

做这样的事没有标准的方法


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

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


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

我能看到的唯一方法是:

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] 1.将输入文本拆分为单词 2.逐字逐句 2.如果单词是缩写,那么 2.a.1不执行任何操作或转换为大写,无论需要什么 2.b否则 2.b.1调用[makeproperty][1]或[capitalize][2] 或

显然,您必须创建一种方法来确定单词是否为缩写:)将所有已知的缩写保存在一个文件中,然后读取它们怎么样。

我能看到的唯一方法是:

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] 1.将输入文本拆分为单词 2.逐字逐句 2.如果单词是缩写,那么 2.a.1不执行任何操作或转换为大写,无论需要什么 2.b否则 2.b.1调用[makeproperty][1]或[capitalize][2] 或

显然,您必须创建一种方法来确定单词是否为缩写:)将所有已知的缩写保存在一个文件中,然后阅读它们如何。

您需要某种字典,其中包含不应大写的单词。您可以使用一个
HashSet
。大致如下:

Set<String> whiteList = new HashSet<String>();
whiteList.add("SW");
whiteList.add("NW");
// ...
for (String word : phrase.split()) {
    if (!whiteList.contains(word)) {
        makeProper(word);
    }
}
Set白名单=新HashSet();
白名单。添加(“SW”);
白名单。添加(“NW”);
// ...
for(字符串字:短语.split()){
如果(!whiteList.contains(word)){
使适当(词);
}
}

您需要某种字典,其中包含不应大写的单词。您可以使用一个
HashSet
。大致如下:

Set<String> whiteList = new HashSet<String>();
whiteList.add("SW");
whiteList.add("NW");
// ...
for (String word : phrase.split()) {
    if (!whiteList.contains(word)) {
        makeProper(word);
    }
}
Set白名单=新HashSet();
白名单。添加(“SW”);
白名单。添加(“NW”);
// ...
for(字符串字:短语.split()){
如果(!whiteList.contains(word)){
使适当(词);
}
}

包含WordUtils.capitalizely,我用它来大写字符串,没有问题。希望能节省你的时间

包含WordUtils.capitalizely,我用它来大写字符串,没有问题。希望能节省你的时间

我同意。这似乎是你自己的情况。我同意。似乎是你自己的处境。