java中字符串中的⼤⼩写转换
中把⼀个字符串中⼤写字母转换为⼩写,⼩写字母转换为⼤写
观看提⽰:
这⾥提供2中思维,但是第⼀种是正确的,第⼆种是错误的;第⼆种的思维可以了解了解,但是需要注意的是如果某个字符串定义为String类型,那么这个串就不能改变了;如果需要改变,那么应该使⽤StringBuffer,这个例⼦也能够很好的说明StringBuffer和String之间的区别!
下⾯的代码中exChange()能够得到正确的结论,exChange2()不能得到正确的结论,原因就是上⾯说的:如果某个字符串定义为String类型,那么这个串就不能改变了
1. //把⼀个字符串中的⼤写转为⼩写,⼩写转换为⼤写:思路1
2. public static String exChange(String str){
3.    StringBuffer sb = new StringBuffer();
4.    if(str!=null){
5.        for(int i=0;i<str.length();i++){
6.            char c = str.charAt(i);
7.            if(Character.isUpperCase(c)){
8.                sb.LowerCase(c));
9.            }else if(Character.isLowerCase(c)){
10.                sb.UpperCase(c));              //有⼀次⾯试问append()是哪个类⾥⾯的
11.            }
12.        }
13.    }
14.
15.    String();
16. }
17.
18. //把⼀个字符串中的⼤写转为⼩写,⼩写转换为⼤写:思路2
19. public static String exChange2(String str){
20.    for(int i=0;i<str.length();i++){
21.        //如果是⼩写
22.        if(str.substring(i, i+1).equals(str.substring(i, i+1).toLowerCase())){
23.            str.substring(i, i+1).toUpperCase();
24.        }else{
25.            str.substring(i, i+1).toLowerCase();
26.        }
27.    }
28.    return str;
29. }
【温馨提⽰】.
Apache的commons-lang包中有很多我们常⽤的⽅法.⽐如IO操作的中的拷贝整个⽬录,判断⼀个字符是不是符合Email的格式,判断⼀个字符是不是数字型.....
所以千万别什么都⾃⼰写.尽量看看在其中是不是已经有现成的⽅法了.
⽐如上⾯这个问题,.就可以这么写【项⽬中需要有commons-lang这个包,可以去下载】
String str = "aBcD";
System.out.println(StringUtils.swapCase(str));
我看了源码:StringUtils.swapCase(str)这个⽅法的实现其实跟第⼀种差不多!下⾯是apache官⽅的swapCase这个⽅法
1. /**
2.  * <p>Swaps the case of a String changing upper and title case to
3.  * lower case, and lower case to upper case.</p>
4.  *
5.  * <ul>
6.  *  <li>Upper case character converts to Lower case</li>
7.  *  <li>Title case character converts to Lower case</li>
8.  *  <li>Lower case character converts to Upper case</li>
9.  * </ul>
10.  *
11.  * <p>For a word based algorithm, see {@link org.WordUtils#swapCase(String)}.
12.  * A {@code null} input String returns {@code null}.</p>
13.  *
14.  * <pre>
15.  * StringUtils.swapCase(null)                = null
16.  * StringUtils.swapCase("")                  = ""
17.  * StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"
18.  * </pre>
19.  *
20.  * <p>NOTE: This method changed in Lang version 2.0.
21.  * It no longer performs a word based algorithm.
22.  * If you only use ASCII, you will notice no change.
字符串函数中将大写转换为小写23.  * That functionality is available in org.WordUtils.</p>
24.  *
25.  * @param str  the String to swap case, may be null
26.  * @return the changed String, {@code null} if null String input
27.  */
28. public static String swapCase(String str) {
29.    if (StringUtils.isEmpty(str)) {
30.        return str;
31.    }
32.
33.    char[] buffer = CharArray();
34.
35.    for (int i = 0; i < buffer.length; i++) {
36.        char ch = buffer[i];
37.        if (Character.isUpperCase(ch)) {
38.            buffer[i] = LowerCase(ch);
39.        } else if (Character.isTitleCase(ch)) {
40.            buffer[i] = LowerCase(ch);
41.        } else if (Character.isLowerCase(ch)) {
42.            buffer[i] = UpperCase(ch);
43.        }
44.    }
45.    return new String(buffer);
46. }
47.
48. //第三种思路:利⽤Character包装类的isLowerCase()和isUpperCase()⽅法:
49.
总结:
1.很强⼤,包装了⼀些常⽤的⽅法,在了解的基础上,现成的当然省⼒。
2.经常查java的Api⽂档很重要,java的巨⼈。
3.前两种思路包含了很巧妙地思想,扩展思维有很⼤帮助。在不了解java的情况下,完全可以靠学过的知识解决。
经常犯的错误
1.注意:如果将 a[i]<='Z'写成了a[i]<="Z",就会报错:运算符<=不能应⽤于char,java.lang.String
因为双引号表⽰字符串(String类型),单引号表⽰字符(Char类型)。
2.length()⽅法 i<j.length()  写成i<jlength,就会报错.
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 Matcher;
import Pattern;
public class Testone {
public static void main(String[] args){
String str="123456";
Pattern pattern = Patternpile("[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中也有呀!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。