いくつかの一般的な略語を維持しながら、Javaでは、どのようにタイトルケースに文字列を行います
-
11-09-2019 - |
質問
Javaのの中タイトルケースには多くの方法があります。
しかし、どのように変換されることから、一般的な略語の一部を防止します。例のために、
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. 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]
makeProper のか<のhref = "のhttp://commons.apache。 ORG / LANG / API /組織/ apacheの/コモンズ/ LANG / WordUtils.html#capitalizeFully%28java.lang.String%29" のrel = "nofollowをnoreferrer">活用する
の明らかにあなたは、単語が略語かないのであるかどうかを判断するメソッドを作成する必要があります:)どのようにすべての維持については、ファイル内の略語を知っているし、それらを読みます。
<のhref = "http://commons.apache.org/lang/api-release/src-html/org/apache/commons/lang3/text/WordUtils.html#line.239" のrel = "nofollowを「>はApache Commonsの-LANG のは、私は問題なく、文字列を大文字に使用しましたWordUtils.capitalizeFullyが含まれています。それはあなたの時間を節約できます願っています。