2013-09-26 15:35:01
来 源
itjs.cn
Apache
本文介绍Java程序中的大小写字符转换,希望对于初学Apache服务器相关的朋友有帮助,更多Apache安装、配置、报错处理等资源请本站内搜索。
java中把一个字符串中大写字母转换为小写,小写字母转换为大写

观看提示:

这里提供2中思维,但是第一种是正确的,第二种是错误的;第二种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不能改变了;如果需要改变,那么应该使用StringBuffer,这个例子也能够很好的说明StringBuffer和String之间的区别! 下面的代码中exChange()能够得到正确的结论,exChange2()不能得到正确的结论,原因就是上面说的:如果某个字符串定义为String类型,那么这个串就不能改变了 //把一个字符串中的大写转为小写,小写转换为大写:思路1

public static String exChange(String str){

StringBuffer sb = new StringBuffer();

if(str!=null){

for(int i=0;i<str.length();i++){

char c = str.charAt(i);

if(Character.isUpperCase?){

sb.append(Character.toLowerCase?);

}else if(Character.isLowerCase?){

sb.append(Character.toUpperCase?);

}

}

}

return sb.toString();

}

//把一个字符串中的大写转为小写,小写转换为大写:思路2

public static String exChange2(String str){

for(int i=0;i<str.length();i++){

//如果是小写

if(str.substring(I, i+1).equals(str.substring(I, i+1).toLowerCase())){

str.substring(I, i+1).toUpperCase();

}else{

str.substring(I, i+1).toLowerCase();

}

}

return str;

}

【温馨提示】.

Apache的commons-lang包中有很多我们常用的方法.比如IO操作的中的拷贝整个目录,判断一个字符是不是符合Email的格式,判断一个字符是不是数字型….. 所以千万别什么都自己写.尽量看看在其中是不是已经有现成的方法了.

比如上面这个问题,.就可以这么写【项目中需要有commons-lang这个包,可以去

"http://commons.apache.org/proper/commons-lang/download_lang.cgi">http://commons.apache.org/proper/commons-lang/download_lang.cgi下载】

String str = "aBcD";

System.out.println(StringUtils.swapCase(str));

我看了源码:StringUtils.swapCase(str)这个方法的实现其实跟第一种差不多!下面是apache官方的swapCase这个方法 /**

* <p>Swaps the case of a String changing upper and title case to

* lower case, and lower case to upper case.</p>

*

* <ul>

* <li>Upper case character converts to Lower case</li>

* <li>Title case character converts to Lower case</li>

* <li>Lower case character converts to Upper case</li>

* </ul>

*

* <p>For a word based algorithm, see [email protected] org.apache.commons.lang3.text.WordUtils#swapCase(String)}.

* A [email protected] null} input String returns [email protected] null}.</p>

*

* <pre>

* StringUtils.swapCase(null) = null

* StringUtils.swapCase("") = ""

* StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

* </pre>

*

* <p>NOTE: This method changed in Lang version 2.0.

* It no longer performs a word based algorithm.

* If you only use ASCII, you will notice no change.

* That functionality is available in org.apache.commons.lang3.text.WordUtils.</p>

*

* @param str the String to swap case, may be null

* @return the changed String, [email protected] null} if null String input

*/

public static String swapCase(String str) {

if (StringUtils.isEmpty(str)) {

return str;

}

char[] buffer = str.toCharArray();

for (int I = 0; I < buffer.length; i++) {

char ch = buffer[i];

if (Character.isUpperCase(ch)) {

buffer[i] = Character.toLowerCase(ch);

} else if (Character.isTitleCase(ch)) {

buffer[i] = Character.toLowerCase(ch);

} else if (Character.isLowerCase(ch)) {

buffer[i] = Character.toUpperCase(ch);

}

}

return new String(buffer);

}

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。