• java String、StringBuilder 、正则表达式


    String 字符串(引用类型) 修改字符串 是重新创建 赋值地址

    构造方法

    public class StringDemo2 {

    public static void main(String[] args) {

    String s1 = "hello";

    String s2 = "hello";   s2指向同一地址  存储在堆的常量池中

    String s3 = new String("hello"); 创建对象 存储了s1地址

    System.out.println(s1==s2); //true      地址相等

    System.out.println(s1==s3); //false

    System.out.println(s1.equals(s3));//true 内容相等 重写了Object

    byte[] bytes={65,66,67,68};  正数:字母  负数:汉字(两个字节)

    String str=new String(bytes);    // byte数组 转 字符串

    String str=new String(bytes,1,2); //(数组,始值  个数)

    byte[] bytes = str.getBytes();  // 字符串 转 byte数组

    char[] ch={'','a','2'};

    String str=new String(ch);     // 字符数组 转 字符串

    String str=new String(ch,0,1);  // 字符数组 转 字符串

    char[] chs = str.toCharArray();  //字符串 转 字符数组

    }

    }

    方法

    str.toString() 获取字符串对象的内容  输出时 自动调用

    str.isEmpty() 判断字符串是不是空串

    str.length() 返回字符串长度

    str.charAt(0) 返回索引处字符

    str.equals(str2); 判断字符串 指定字符串 内容是否相同

    str.equalsIgnoreCase(str3); 判断字符串内容是否相同  忽略大小写

    str.substring(1) 截取开始索引 到最后 的字符串

    str.substring(2, 4) 截取开始索引 到终止索引(不包括) 的字符串

    str.indexOf("bcd") 返回第一次出现该字符串的索引,没有返回-1

    str.contains("bcd") 判断是否包含指定字符串true/false

    str.startsWith("Demo") 判断是否以给定字符串开头

    str.endsWith("java") 判断是否以给定字符串结尾

    str.toLowerCase() 把字符串转换为小写字符串

    str.toUpperCase() 把字符串转换为大写字符串

    str.trim()     去掉字符串两端空格

    str.replace(oldChar, newChar)   将替换字符串中的老字符,为新字符

    str.replace(oldstr, newstr) 将字符串中的老字符串,替换为新字符串

    String[] strArray = str.split(",")   按照指定符号分割字符串

    StringBuilder 字符串缓冲区(高效)  StringBuffer() 用法相同

    public class StringBuilderDemo {

    public static void main(String[] args) {

    StringBuilder sb = new StringBuilder(); //构造方法   初始为空串

    StringBuilder sb = new StringBuilder("world");//构造方法 str sb

    String str = sb.toString();       //str sb    输出时 自动调用

    StringBuilder sb2 = sb.append("hello");//添加数据(任意类型)

    System.out.println(sb == sb2); //true 地址相同

    sb.delete(1, 4);    //删除 [1,4)字符

    sb.deleteCharAt(1); //删除字符

    sb.insert(2, "it");   //在指定位置插入

    sb.replace(1, 4, "java");//替换[1,4)的字符串为"java"

    sb.reverse();反转

    sb.length()    //返回长度(字符数)

    sb.charAt(0)  返回索引处的字符

    sb.indexOf("java",5) 查找第一次出现字符串的索引 从指定索引处

    String str = sb.substring(0,1); 截取 [0,1) 返回字符串

    String str = sb.substring(1); 截取[1,最后] 返回字符串

    sb.append("hello").append(true).append(100); //链式调用

    }

    }

    正则表达式(简写为regex   Pattern类  是字符串)

    匹配规则

    字符: 字符类:

    X 字符 [abc] ab c

    \ 转义 [^abc] 除了 ab c以外的任何字符

    制表符 [a-zA-Z] a z A Z

    换行符 [0-9] 09数字

    回车符 [a-zA-Z_0-9] 字母或数字或下划线

    预定义字符类:

    . 点代表的是任何字符 \. 匹配 点

    d 09数字 D取反 \d

    w 字母或数字或下划线 W取反 \w

    数量词: 边界匹配器:

    X? X出现0~1 ^  行的开头

    X* X出现0~∞次 $  行的结尾

    X+ X出现1~∞次   单词边界

    X{n} X出现恰好 n

    X{n,} X出现至少 n

    X{n,m} X出现 n ~ m

    regex = "(.)\1";

    点表示任意字符,\1取第一个括号匹配的内容,加号匹配1次以上

    某个字符重复两次或两次以上

    正则表达式的常用方法

               

    String str = "18369657617";

    String regex = "1[34578][0-9]{9}";

    boolean flag2 = str.matches(regex); 判断字符串是否匹配

    String s = "18-22-40-65";

    String regex = "-";

    String[] result = s.split(regex); 用分隔符 分割字符串 为 字符串数组

    String s = "Hello12345World6789012";

    String regex = "[0-9]";

    String result = s.replaceAll(regex, "*");字符串中符合规则的替换为 新字符

    字符串 数字 转换

    public class Demo03 {

    public static void main(String[] args) {

    // 字符串转成基本类型Xxx.parseXxx(String s);  xxx:基本数据类型

    String str="12";

    System.out.println(str+1); // 121

    int s1=Integer.parseInt(str); // str内容必须是int格式

    System.out.println(s1+1); // 13

    String str2="2.3";

    double s2=Double.parseDouble(str2);

    System.out.println(s2+1); // 3.3

    //基本类型 转 字符串

    String s1=12+""; // 方法1

    String s3=String.valueOf(2.3); // 方法2

    System.out.println(10+s3); // 102.3

    String s4=Integer.toString(12); // 方法3  有参数 不是重写obj

    System.out.println(s4+1); // 13

    }

    }

  • 相关阅读:
    赵炯博士《Linux内核完全注释》
    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug
    Can't find kernel text map area from kcore
    Could not allocate 40960 bytes percpu data
    镜像
    H3C S6800交换机 BCM shell命令
    Bean的作用域
    Bean之间的关系
    Bean的自动装配
    Java8 Hash改进/内存改进
  • 原文地址:https://www.cnblogs.com/javscr/p/10206848.html
Copyright © 2020-2023  润新知