zoukankan      html  css  js  c++  java
  • java的String类、字符串缓冲区、正则表达式

    1、String类:
    (1)String类不需要new

    (2)字符串是常量,它们的值在创建之后不能更改,但是变量的地址值是可以改变的。

    例如:

    package com.oracle.demo01;
    
    public class demo01 {
    
        public static void main(String[] args) {
            //字符串是免new的
            String   a = "abc";
            a = "bbc";
        }
    }

    (3)字符串的本质是一个字符的数组。

      

    (4)String str = new String("a");
    在内存中有两个对象。一个new的对象在堆中,
    一个字符串本身对象,在字符串常量池中.


    (5)String类构造方法

    package com.oracle.demo02;
    
    public class demo01 {
                public static void main(String[] args) {
                    byte[]  bytes = {-65,-67,68,69};
                    //如果是正数按照ASCII码表对byte数组进行解析,解析成字符
                    //如果是负数是汉字,并且一个汉字对应两个字节
                    /*String str = new String(bytes);
                    System.out.println(str);*/
                    char[]  chars = {'n','w','t'};
                    String str = new String(chars);
                    System.out.println(str);
                }
    }

    (6)String类的方法查找:
    .length();.substring(i);.substring(i,j);

    例如:

    package com.oracle.demo03;
    
    public class demo01 {
                public static void main(String[] args) {
                    //判断两个字符串是否内容相同(忽略大小写)
                    System.out.println("NIHAO".equalsIgnoreCase("nihao"));
                    String    str = "hellojavanihaojava.text";
                    //截取字符串
                    System.out.println(str.substring(4));
                    //判断前缀
                    System.out.println(str.startsWith("b"));
                    String str1 = "nihaojava";
                    //将字符串转为字节数组
                    byte[] b1 = str1.getBytes();
                    System.out.println(b1);
                    for(int i  = 0;i < b1.length;i++){
                        System.out.print(b1[i]+",");
                    }
                    char[]  b2 = str1.toCharArray();
                    System.out.println(b2);
                    for(int j  = 0;j < b2.length;j++){
                        System.out.print(b2[j]+",");
                    }
                }
                
    }
    package com.oracle.demo04;
    
    public class demo01 {
                public static void main(String[] args) {
                        String  str1 = "abcdefg";
                        String  str2 = "";
                        //判断该字符串的内容是否为空的字符串
                        System.out.println(str2.isEmpty());//true
                        //获取给定的字符,在该字符串中第一次出现的位置
                        System.out.println(str1.indexOf("bc"));//1
                        //获取该字符串中指定位置上的字符
                        System.out.println(str1.charAt(3));
                        String str3 = "ABCDE";
                        //把该字符串转换成 小写字符串
                        System.out.println(str3.toLowerCase());//abcde
                        /*System.out.println(str3.toLowerCase(Locale locale));*/
                        //把该字符串转换成 大写字符串
                        System.out.println(str1.toUpperCase());//ABCDEFG
                        //在该字符串中,将给定的旧字符,用新字符替换
                        System.out.println(str1.replace('b','1'));//a1cdefg
                        //在该字符串中,将给定的旧字符串,用新字符串替换
                        System.out.println(str1.replace("bc","abd"));//aabddefg
                        //去除字符串两端空格,中间的不会去除,返回一个新字符串
                        String   str4 = "	a	b	";
                        System.out.println(str4+"hhh");//    a    b    hhh    
                        System.out.println(str4.trim()+"hhh");//a    bhhh
                }
    }

    2、字符串缓冲区:
    (1)StringBuffer:[可变字符序列]
    (2)StringBuffer的方法使用:
    .append(str);.delete(i,j);.inset(i,str);.replace(i,j,str);

    package com.oracle.demo05;
    
    public class demo01 {
    
        public static void main(String[] args) {
            //创建字符缓冲区
            StringBuffer  sbb = new StringBuffer("abcdefghijk");
            //替换
            sbb.replace(0, 1, "ss");
            System.out.println(sbb);
            //添加
            sbb.append(true);
            System.out.println(sbb);
            //删除
            sbb.delete(0, 1);
            System.out.println(sbb);
            //修改
            sbb.insert(0, "a");
            System.out.println(sbb);
            /*ssbcdefghijk
            ssbcdefghijktrue
            sbcdefghijktrue
            asbcdefghijktrue*/
        }
    
    }

    (3)对象的方法链式调用:

    例如:只要返回值和调用对象类型相同

    str.append().append().toString()

    (4)StringBuilder类:
    StringBuilder比StringBuffer快,但是不如StringBuffer安全;
    3、正则表达式:
    (1)正则表达式是一个字符串;
    (2)匹配规则:【区分大小写字母】

    例如:

    package com.oracle.demo05;
    
    public class demo03 {
            public static void main(String[] args) {
                  String   str  = "0533-3153666-000";
                  String   regex = "-";
                  String[] flag = str.split(regex);
                  for(int i = 0;i < flag.length;i++){
                         System.out.println(flag[i]);
                }
            }
    }

    package com.oracle.demo05;
    
    public class demo02 {
                public static void main(String[] args) {
                     String str = "17865164082";
                     String regex = "1[3,4,5,7,8][0-9]{9}";
                     boolean flag = str.matches(regex);
                     System.out.println(flag);
                }
    }

  • 相关阅读:
    stm32 输入捕获
    stm32 输入捕获
    stm32 窗口看门狗 WWDG
    stm32 窗口看门狗 WWDG
    stm32 独立看门狗 IWDG
    Linux开机启动chkconfig命令详解(让MySQL、Apache开机启动)
    linux命令之 用户和群组
    vmware
    linux下安装mysql手记
    wget
  • 原文地址:https://www.cnblogs.com/scw123/p/9726772.html
Copyright © 2011-2022 走看看