2016-02-25 51 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

相关问题