2012-04-23 3 views
0

나는이 포럼에서 조금씩 찾았습니다. 모든 단어의 첫 글자를 대문자로 만드는 방법에 대한 질문이 있습니다. 내가 찾고있는 게 아니야.단어가 대문자인지 확인하고 첫 글자 만 변경하면

문자열의 모든 단어를 검사하는 무언가를 찾고 있는데 대문자 인 경우 첫 문자는 소문자로 변경합니다. "

I을 :

"안녕 유래 "

또는 : 그것은 그것을 바꿀 것

"HI 유래 "

을 :

등,의 문자열입니다 가정 해 봅시다 stackoverflow.com에서 질문하기 "

I

나는 별도의 단어들로 문자열을 중단 할 수 있고 StringTokenizer 클래스를 사용하는 것이

+3

난 당신이 찾고있는 생각합니다. http://stackoverflow.com/questions/1892765/capitalize-first-char-of-each-word-in-a-string-java –

+0

''나는''단어가 아니라 두 단어로 된 수축 단어입니다. . 공백이 아닌 문자를 "단어"라고 생각합니까? – dasblinkenlight

답변

4

"나는 유래 닷컴에 질문을하고있어": t는 그것을 변경합니다. 그럼 당신은 별도의 문자열로 각각의 토큰을 얻을 비교할 수 있습니다 같은

String line = "A BIG Thing that Something" 

StringTokenizer st = new StringTokenizer(line); 

     while(st.hasMoreTokens) 
      { 
       String a = st.nextToken(); 
       if(a.equals(a.toUpperCase())){ 
        System.out.println(a.charAt(0) + a.substring(1).toLowerCase()); 
       }else{ 
        System.out.println(a); 
        } 
      } 

뭔가 ... 당신은 java.util 패키지의 일부, 있고 StringTokenizer를 가져올 기억해야합니다.

+0

'(a.equals (a.toUpperCase())'가하는 일은 무엇입니까? 그냥 토큰을 대문자로 바꾸는 것입니까?이 경우 왜'if()'가 필요합니까? – noMAD

+0

은 a가 같은지 검사합니다. (즉, 대문자 인 경우) 포스터가 이러한 유형의 토큰을 만들기를 원했기 때문에 선두에 자본이 있고, 다른 모든 것을 동일하게 유지하려면 if가 있습니다. – Sekm

+0

감사합니다. 첫 번째 문자가 기호 (예 : ":") 인 경우 두 번째 문자를 소문자로 변환하지 않도록 사람들이 어떻게 할 수 있는지 알 수 있습니까? d? –

-1

프로젝트에 라이브러리를 통합하는 데 공개적으로 열려 있으면 Apache Commons-lang StringUtils에 필요한 기능 유형이 있다고 확신합니다.

0
public static void main(String[] args) { 
     String org= "HI STACKOVERFLOW"; 
     String [] temp=org.split(" "); 
     int len=temp.length; 
     String ne = "."; 
     for(int i=0;i<len;i++) 
     { 

     temp[i]=temp[i].toUpperCase(); 
     temp[i]=(temp[i].substring(0, 1)).toUpperCase()+(temp[i].substring(1, temp[i].length())).toLowerCase(); 
     System.out.print(temp[i]+" "); 
     } 

    } 

출력 안녕 유래는

관련 문제