0

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 は、South West の略語であるため、大文字のままにする必要があります。

4

4 に答える 4

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);
    }
}
于 2009-10-31T12:04:14.997 に答える
2

そのようなことを行うための標準的な方法はありません。

独自の方法と、「修正」して変換から除外したくない略語のセットを考え出すことができます

于 2009-10-31T11:08:04.350 に答える
0

Apache Commons-langには、問題なく文字列を大文字にするために使用した WordUtils.capitalizeFully が含まれています。時間を節約できることを願っています。

于 2012-09-08T20:47:13.933 に答える
0

私が見ることができる唯一の方法は次のとおりです。

1. 入力テキストを単語に分割する  
2.単語を繰り返す  
      2.a 単語が略語の場合
           2.a.1 何もしないか、必要に応じて大文字に変換します  
    2.b それ以外の場合  
           2.b.1 [makeProper][1] または [capitalize][2] を呼び出す  

makeProperまたはcapitalize
明らかに、単語が略語であるかどうかを決定するメソッドを作成する必要があります:)すべての既知の略語をファイルに保存して、それらを読み取るのはどうですか。

于 2009-10-31T11:52:30.680 に答える