我在這個論壇上搜索了一下,我似乎找到的所有問題都是關於如何使每個單詞的第一個字母大寫的問題。這不是我要找的。檢查單詞是否大寫,只更改第一個字母
我正在尋找將檢查字符串中所有單詞的內容,如果它們是大寫字母,則會將字母改爲小寫字母,除了第一個字母。
一樣,讓我們說字符串是:
「HI計算器」
這將改變爲:
「嗨#1」
或者:
「我'在stackoverflow網站上提出問題「
I T公司將其更改爲:
「我問一個問題StackOverflow上點com」
我在這個論壇上搜索了一下,我似乎找到的所有問題都是關於如何使每個單詞的第一個字母大寫的問題。這不是我要找的。檢查單詞是否大寫,只更改第一個字母
我正在尋找將檢查字符串中所有單詞的內容,如果它們是大寫字母,則會將字母改爲小寫字母,除了第一個字母。
一樣,讓我們說字符串是:
「HI計算器」
這將改變爲:
「嗨#1」
或者:
「我'在stackoverflow網站上提出問題「
I T公司將其更改爲:
「我問一個問題StackOverflow上點com」
我會使用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包的一部分。
如果您打算在您的項目中加入庫,我很肯定Apache Commons-lang StringUtils
具有您需要的功能類型。
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
我認爲你正在尋找這一點。 http://stackoverflow.com/questions/1892765/capitalize-first-char-of-each-word-in-a-string-java – 2012-04-23 04:06:25
''我是''不是一個字,它是一個雙字收縮。你認爲任何非空白字符都是「單詞」嗎? – dasblinkenlight 2012-04-23 04:06:47