java中把⼀个字符串中⼤写字母转换为⼩写,⼩写字母转换为
⼤写
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(c)){
sb.LowerCase(c));
}else if(Character.isLowerCase(c)){
sb.UpperCase(c));
}
}
}
字符串截取不改变原字符串String();
}
//把⼀个字符串中的⼤写转为⼩写,⼩写转换为⼤写:思路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这个包,可以去下载】
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 {@link org.WordUtils#swapCase(String)}. * A {@code null} input String returns {@code 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.WordUtils.</p>
*
* @param str the String to swap case, may be null
* @return the changed String, {@code null} if null String input
*/
public static String swapCase(String str) {
if (StringUtils.isEmpty(str)) {
return str;
}
char[] buffer = CharArray();
for (int i = 0; i < buffer.length; i++) {
char ch = buffer[i];
if (Character.isUpperCase(ch)) {
buffer[i] = LowerCase(ch);
} else if (Character.isTitleCase(ch)) {
buffer[i] = LowerCase(ch);
} else if (Character.isLowerCase(ch)) {
buffer[i] = UpperCase(ch);
}
}
return new String(buffer);
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论