簡體   English   中英

每個單詞首字母大寫,句子中帶有符號

[英]Capitalize first letter in each word with symbols in sentence

我有一個存儲人們寫的字符串的數據庫。 例如,這些字符串定義了電影的名稱。

為了克服重復和其他一些問題,我做到了無論用戶輸入什么,它都會使每個第一個字母大寫。 以這種方式,所有字符串都將以相同的方式保存。

我這樣做的方法是使用:

String[] words = query.split( "\\s+" );
for (int i = 0; i < words.length; i++) {
    String Word = words[i].replaceAll( "[^\\w]", "" );
    words[i] = Word.substring( 0, 1 ).toUpperCase() + Word.substring( 1 );
}
query = TextUtils.join( " ", words );

但是,當我嘗試輸入以下內容時遇到了問題:Tom & Jerry。

在這種情況下,我遇到了&錯誤。 我是否只需要設置條件來檢查每個字母,例如&, (, ), $等?

toUpperCase可以很好地處理非字母字符,並且只返回相同的字符。 您的代碼的問題在於它假定每個word都是非空的,在刪除特殊字符后不再如此。

長話短說,只保留特殊字符,你應該沒問題:

for (int i = 0; i < words.length; i++) {
    String word = words[i];
    words[i] = word.substring( 0, 1 ).toUpperCase() + word.substring( 1 );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM