2012-04-23 166 views
0

我在這個論壇上搜索了一下,我似乎找到的所有問題都是關於如何使每個單詞的第一個字母大寫的問題。這不是我要找的。檢查單詞是否大寫,只更改第一個字母

我正在尋找將檢查字符串中所有單詞的內容,如果它們是大寫字母,則會將字母改爲小寫字母,除了第一個字母。

一樣,讓我們​​說字符串是:

「HI計算器」

這將改變爲:

「嗨#1」

或者:

「我'在stackoverflow網站上提出問題「

I T公司將其更改爲:

「我問一個問題StackOverflow上點com」

+3

我認爲你正在尋找這一點。 http://stackoverflow.com/questions/1892765/capitalize-first-char-of-each-word-in-a-string-java – 2012-04-23 04:06:25

+0

''我是''不是一個字,它是一個雙字收縮。你認爲任何非空白字符都是「單詞」嗎? – dasblinkenlight 2012-04-23 04:06:47

回答

4

我會使用StringTokenizer類來向上突破串入單獨的詞。然後你就可以得到每個令牌作爲一個單獨的字符串和比較:

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

'if(a.equals(a.toUpperCase())'做了什麼?只需將標記更改爲大寫?在這種情況下,爲什麼需要'if()'? – noMAD 2012-04-23 04:17:15

+0

該部分檢查a是否相等如果是因爲海報想讓這些類型的標記只有一個首要的資本,否則,如果保持一切都是一樣的,這是否有意義? – Sekm 2012-04-23 04:20:15

+0

謝謝你們,你知道我該怎麼做,所以如果第一個字母是一個符號(即「:」),它不會小寫第二個字符,所以人們可以做到:D並沒有它去:d? – 2012-04-23 04:41:15

-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]+" "); 
     } 

    } 

輸出嗨#1

相關問題