Java에서는 일반적인 약어를 보존하면서 제목 케이스를 어떻게 끈을 사용합니까?

StackOverflow https://stackoverflow.com/questions/1654066

  •  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를 포함합니다. 시간을 절약하기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top