zoukankan      html  css  js  c++  java
  • java中字符串中的大小写转换

    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.append(Character.toLowerCase(c));  
    9.             }else if(Character.isLowerCase(c)){  
    10.                 sb.append(Character.toUpperCase(c));               //有一次面试问append()是哪个类里面的
    11.             }  
    12.         }  
    13.     }  
    14.       
    15.     return sb.toString();  
    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这个包,可以去http://commons.apache.org/proper/commons-lang/download_lang.cgi下载】
    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.apache.commons.lang3.text.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.apache.commons.lang3.text.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 = str.toCharArray();  
      34.   
      35.     for (int i = 0; i < buffer.length; i++) {  
      36.         char ch = buffer[i];  
      37.         if (Character.isUpperCase(ch)) {  
      38.             buffer[i] = Character.toLowerCase(ch);  
      39.         } else if (Character.isTitleCase(ch)) {  
      40.             buffer[i] = Character.toLowerCase(ch);  
      41.         } else if (Character.isLowerCase(ch)) {  
      42.             buffer[i] = Character.toUpperCase(ch);  
      43.         }  
      44.     }  
      45.     return new String(buffer);  
      46. //第三种思路:利用Character包装类的isLowerCase()和isUpperCase()方法: 
      47.  总结:

        1.Java很强大,包装了一些常用的方法,在了解的基础上,现成的当然省力。

        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 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中也有呀!

         
         
  • 相关阅读:
    elasticsearch
    CentOS6.9安装Logstash
    CentOS6.9安装Filebeat监控Nginx的访问日志发送到Kafka
    openresty capture
    CentOS6.9安装socat
    CentOS挂Windows的NFS备忘
    openCV 备忘
    rabbitmq更换数据文件和日志文件的存放位置
    根据某个文件或文件夹自制rpm包
    checkinstall打包工具使用
  • 原文地址:https://www.cnblogs.com/thomasbc/p/6687466.html
Copyright © 2011-2022 走看看