/**
*
Swaps the case of a String changing upper and title case to
* lower case, and lower case to upper case.
*
*
*
Upper case character converts to Lower case*
Title case character converts to Lower case*
Lower case character converts to Upper case*
*
*
For a word based algorithm, see {@link org.apache.commons.lang3.text.WordUtils#swapCase(String)}.
* A {@code null} input String returns {@code null}.
*
*
* StringUtils.swapCase(null) = null
* StringUtils.swapCase("") = ""
* StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
*
*
*
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.
*
* @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 = str.toCharArray();
for (int i = 0; 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);
}
//第三种思路:利用Character包装类的isLowerCase()和isUpperCase()方法:
总结:
1.Java很强大,包装了一些常用的方法,在了解的基础上,现成的当然省力。
2.经常查java的Api文档很重要,java的巨人。
3.前两种思路包含了很巧妙地思想,扩展思维有很大帮助。在不了解java的情况下,完全可以靠学过的知识解决。
经常犯的错误
1.注意:如果将 a[i]<='Z'写成了a[i]<="Z",就会报错:运算符<=不能应用于char,java.lang.String
因为双引号表示字符串(String类型),单引号表示字符(Char类型)。
2.length()方法 i
java中判断字符串是否为纯数字
方法一:利用正则表达式
public class Testone {
public static void main(String[] args){
String str="123456";
boolean result=str.matches("[0-9]+");
if (result == true) {
System.out.println("该字符串是纯数字");
}else{
System.out.println("该字符串不是纯数字");
}
}
}
方法二:利用Pattern.
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Testone {
public static void main(String[] args){
String str="123456";
Pattern pattern = Pattern.compile("[0-9]{1,}");
Matcher matcher = pattern.matcher((CharSequence)str);
boolean result=matcher.matches();
if (result == true) {
System.out.println("该字符串是纯数字");
}else{
System.out.println("该字符串不是纯数字");
}
}
}
//原来以为正则表达式是js里面的,Java中也有呀!