我在这个论坛上搜索了一下,我似乎找到的所有问题都是关于如何使每个单词的第一个字母大写的问题。这不是我要找的。检查单词是否大写,只更改第一个字母
我正在寻找将检查字符串中所有单词的内容,如果它们是大写字母,则会将字母改为小写字母,除了第一个字母。
一样,让我们说字符串是:
“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