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는 남서부에 대한 약어이므로 대문자로 남아 있어야합니다.
해결책
자본화해서는 안되는 단어가 포함 된 일종의 사전이 필요합니다. 당신은 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);
}
}
다른 팁
그런 일을하는 표준 방법은 없습니다.
당신은 자신의 방법과 "수정"하고 원하지 않는 일련의 약어 세트를 제외하고 변형에서 제외 할 수 있습니다.
내가 볼 수있는 유일한 방법은 다음과 같습니다.
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]
메이크 프로퍼 또는 대문자
분명히 단어가 약어인지 여부를 결정하는 방법을 만들어야합니다. :) 모든 사람들이 파일의 약어를 유지하고 읽는 것은 어떻습니까?
아파치 커먼즈 라인 wordutils를 포함합니다. 시간을 절약하기를 바랍니다.
제휴하지 않습니다 StackOverflow