2012-04-23 7 views
0

私はこのフォーラムで少しずつ検索しました。すべての単語の最初の文字を大文字にする方法に関する質問があります。それは私が探しているものではありません。単語が大文字かどうかを確認し、最初の文字のみを変更する

文字列内のすべての単語をチェックするものを探しています。大文字の場合は、最初の文字を小文字のEXCEPTに変更します。

と同様に、の文字列があるとしましょう:

"HI StackOverflowの"

それはそれを変更します

"こんにちはStackOverflowの"

または:

「Iを'質問stackoverflowドットコムで質問する "

私は

私は別の言葉に文字列を分割するのStringTokenizerクラスを使用します

+3

私はあなたがこのために探していると思います。 http://stackoverflow.com/questions/1892765/capitalize-first-char-of-each-word-in-a-string-java –

+0

''私は ''は単語ではない、それは2単語の収縮。非空白文字の実行は「単語」と見なしますか? – dasblinkenlight

答えて

4

「私はstackoverflowのドットコムで質問をしています」: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); 
        } 
      } 

何かが...あなたはStringTokenizerはをインポートすることを忘れないする必要があります、それはjava.utilパッケージの一部です。

+0

'(a.equals(a.toUpperCase())'は何をするのですか?単にトークンを大文字に変更しますか?その場合、なぜ 'if()'が必要なのですか? – noMAD

+0

は、 (つまり、大文字の場合は)大文字であることを表しています。ポスターはこれらのタイプのトークンを作成したかったからです。他のものはすべて同じにしておきます。 – Sekm

+0

ありがとう、最初の文字が記号(つまり ":")ならば、それは2番目の文字を小文字にしないように、どうすればいいのでしょうか? 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]+" "); 
     } 

    } 

出力こんにちはstackoverflowの

関連する問題