2016-02-25 57 views
0

我有一個想法:(可能也已完成)即使用戶輸入如「xXXxX」,我如何更改「Xxxxx」格式的值? Java的

  1. 我不知道如果我能子串(1),然後使用.toUpperCase()爲 串
  2. ,之後使用的getLength()有長度然後 .toLowerCase()其餘的字符串

有沒有更簡單的方法來做到這一點?所以我可以將值存儲爲「Xxxx」格式。 謝謝。

例如: 無論用戶輸入值爲「hELlo」還是「HEllO」,系統始終將該值存儲爲「Hello」。這可能解釋我的問題。

+2

的可能的複製http://stackoverflow.com/questions/1086123/string-conversion-to -title-case – declension

回答

1

我爲自己寫了一個小工具。它可能會幫助你。我確信我的字符串總是有字母,所以不會在乎任何其他字符。您可能需要根據您的需求進行修改。

int length = "yourstring".length();/// get the length of the string 
     String camelCase = removeCharacters.substring(0, 1).toUpperCase();// upper case the first alphabet 
     camelCase = camelCase + "yourstring".substring(1, length).toLowerCase();// lowercase all other alphabets 
+0

你爲什麼重新發明輪子? Apache已經提供了這個開箱即用的功能,而camelCase與OP在他的問題中所要求的不同。 – hd1

0

子串具有單參數版本和雙參數版本。第二個參數是非包含性的。所以,你想要的字符串的第一位是

myString.subString(0, 1) 

和第二位是

myString.subString(1) 

然後,您可以調用的結果toupper和tolower的方法,以及將它們連接起來。

+0

從效率的角度來看,這是可怕的。 – hd1

+1

這可能是事實,但他提出了一個問題來解析用戶輸入。它不可能很長,也不會在關鍵部分。我認爲可以假設我們可以在這裏優化開發時間。 :) –

+0

請參閱我的答案以獲得更強大的解決方案 – hd1

0

是的,Apache Commons-Lang項目具有WordUtils類與利用的方法,如下面的例子:

WordUtils.capitalize("i am FINE") yields: "I Am FINE" 
+0

如果我想使用這種方法。我應該輸入什麼軟件包?我使用blueJay,它說「org.apache.commons.lang3.text」不存在。 (import org.apache.commons.lang3.text.WordUtils;) – Lenic

+0

在您的CLASSPATH中包含commons-lang3 jar文件,並在文件頂部導入org.apache.commons.lang3.text.WordUtils。 – hd1

相關問題