字符串基本内容2

正则表达式

正则表达式是一种字符串处理工具,它用于匹配、查找、替换和提取文本中符合要求的内容。

正则表达式中普通字符匹配规则

 特殊字符

 非打印字符

 限定符

 定位符

用于正则表达式中的几个方法

Pattern.compile(String regex):用于将正则表达式编译成一个Pattern对象。

Macther.matches():该方法用于判定给定字符串是否与正则表达式匹配,返回一个布尔值。是拿着整个字符串序列和正则表达式匹配,是要看整体的。

Matcher.find():该方法用于在给定字符串中查找与正则表达式匹配的子序列,并返回一个布尔值。如果找到,可以用group()方法获取匹配的子序列。这个方法与Macther.matches()方法不同,是在整个序列中找符合正则表达式的子序列。

上述三个方法的使用:

        //匹配数字,匹配三位
        String regex = "\\d\\d\\d";
        //将正则表达式编译成pattern对象
        Pattern pattern = Pattern.compile(regex);
        String str = "a12345";
        //创建匹配器
        Matcher matcher = pattern.matcher(str);
        //使用matcher.find()输出结果
        System.out.println(matcher.find());  //true
        //匹配数字
        String regex = "\\d+";
        String str = "123456";
        //将正则表达式编译成pattern对象
        Pattern pattern = Pattern.compile(regex);
        //创建匹配器
        Matcher matcher = pattern.matcher(str);
        boolean isMatches = matcher.matches();
        System.out.println(isMatches);  //true

 matcher.replaceAll(String replacement):该方法用于在给定字符串中匹配正则表达式的子序列,replacement是一个字符串类型的替换字符串。

// 匹配数字
String regex = "\\d+";
// 将正则表达式编译成模式
Pattern pattern = Pattern.compile(regex);
String text = "hello 123 world 456";
// 创建匹配器对象
Matcher matcher = pattern.matcher(text);
// 将匹配的子序列替换为"###"
String replacedText = matcher.replaceAll("###");
// 输出替换后的结果字符串 hello ### world ###
System.out.println(replacedText);   //hello###world###

包装类

为了使基本数据类型也具有面向对象的特性,Java提供了包装类,包装类是一种特殊的类,用于将基本数据类型封装成对象,Java提供了8中包装类:除了Character,其他都是包装类都是对应的基本数据类型首字母大写。

 构造方法(JDK9之后过时)

Integer构造方法:Integer(int value),Integer(String s),s表示数字字符串。

Byte、Short、Long、Float、Double、Boolean 的构造方法和Integer的构造方法类似。
Character的构造方法:Character(char value)
Float的构造方法:Float(double value),Float(int value),Float(String s)

装箱/拆箱

装箱和拆箱指的是基本数据类型和对应的包装类之间的转换。

装箱:将基本数据类型转换成对应的包装类对象,可以使用包装类的构造方法或者静态方法valueOf( )来完成。

拆箱:将包装类对象转换成对应的基本数据类型,可以使用包装类提供的XxxValue( )方法来完成。

// 装箱:将int类型转换为Integer类型
int i = 100;
Integer integerObj = new Integer(i);
Integer integerObj2 = Integer.valueOf(i);
// 拆箱:将Integer类型转换为int类型
Integer integerObj3 = new Integer(200);
int j = integerObj3.intValue();
int k = integerObj3; // 自动拆箱
}

自动装箱/拆箱(JDK5以上)

当基本数据类型和它们对应的包装类有如下操作时,会进行自动装箱/拆箱:

进行 "="赋值操作时(装箱或拆箱)

+  -   *   /混合运算时,进行拆箱

>  <   == 比较运算时,进行拆箱

调用equals( )比较时,进行装箱

ArrayList,HashMap添加基础类型数据时,进行装箱

int a = 100;
Integer b = 100;
System.out.println(a == b); // true (a和b比较时b会进行自动拆箱,然后直接比较二者的值)
Integer c = 100;
Integer d = 100;
System.out.println(c == d); // true 
Integer num1 = new Integer(100);
Integer num2 = new Integer(100);
System.out.println(num1 == num2); // false
c = 200;
d = 200;
System.out.println(c == d); // false

Integer c = 100;
Integer d = 100;
System.out.println(c == d); // true 

//此处是因为IntegerCache(缓存常量池)中有-128-127之间的所有数字(int范围内的所有数字),-128-127之间的数字可以直接从缓存池中拿,不会重新创建对象,所以c == d是true

Integer方法

Character方法

 

 String类型转换成基本类型

将字符串类型转成成基本类型,需要使用基本类型的包装类,String的valueOf( )将基本数据类型转换成字符串。

基本类型中除了char类型之外,其他7种基本数据类型使用各自的包装类调用parseXxx()方法将String类型转换成基本数据类型。

char类型的转换可以通过String类的charAt(int index)完成。

基本数据类型转换为String类型

String数据类型在参与运算时,需要转换成基本数据类型,基本数据类型在界面上显示时需要将数据转换成String类型后输出在界面上。

八种基本数据类型转换成String的方法有两种

1.通过 "+" 将基本数据类型和String类型连接,将基本数据类型转换成String类型。

2.通过String.valueOf(基本数据类型)方法将基本数据类型转换成String类型。

字符串变量

StringBuffer类

StringBuffer类在Java中是一个可变的字符串类,它提供了对字符串进行修改的方法。与String类不同,StringBuffer类的对象可以修改。

StringBuffer类的构造方法

StringBuffer sb  =  new StringBuffer( ):创建一个空的StringBuffer对象,初识容量默认为16.

StringBuffer  sb =  new  StringBuffer(int  capacity) :创建一个空的StringBuffer对象,并指定初始容量。

StringBuffer  sb =  new StringBuffer(String str):创建一个空的StringBuffer对象,初始容量将被设置为字符串的长 度加上默认的容量增量(默认为16)。

StringBuffer(CharSequence seq): 创建一个包含指定字符序列的StringBuffer对象。CharSequence是一 个接口,可以是String、StringBuilder或其他实现CharSequence接口的类的实例。
使用示例:
// 创建一个空的StringBuffer对象
StringBuffer sb1 = new StringBuffer();
// 创建一个初始容量为20的StringBuffer对象
StringBuffer sb2 = new StringBuffer(20);
// 创建一个包含字符串"Hello"的StringBuffer对象
StringBuffer sb3 = new StringBuffer("Hello");
// 创建一个包含StringBuilder对象内容的StringBuffer对象
StringBuffer sb4 = new StringBuffer(new StringBuilder("World"));
StringBuffer常用方法
StringBuffer sb = new StringBuffer();

sb.append();  //将一个字符或字符串添加到sb末尾

sb.insert();  //将一个字符或字符串添加到sb的指定位置上
 
sb.delete();  //从sb中删除指定位置的元素 
 
sb.reverse(); //将sb的序列翻转

sb.length();  //获取sb序列的长度

sb.toString();  //将sb转换成普通的字符串

使用示例:

// 创建一个空的StringBuffer对象
StringBuffer sb = new StringBuffer();
sb.append("Hello");
sb.insert(5, " World");
sb.deleteCharAt(10);
sb.reverse();
System.out.println(sb.toString());
StringBuffer类在Java 5中被StringBuilder类取代。StringBuilder类与StringBuffer类相似,但不是线程安全的。在单线程环境下,建议使用StringBuilder类而不是StringBuffer类,因为StringBuilder类的执行速度更快。

StringBuilder类

StringBuilder是Java中的一个类,它提供了一种可变的字符串缓冲区,可以动态的改变字符串的内容,StringBuilder类是可变的,意味着它的长度和内容可以随时变化,不用再重新创建新的对象。

StringBuilder类的常用方法
StringBuilder sb = new StringBuilder();

sb.append();  //追加字符或字符串
 
sb.insert();  //在指定位置插入指定的字符串

sb.delete();  //删除指定范围内的字符串
  
sb.reverse();  //翻转序列的字符顺序

sb.replace();   //用指定的字符串替换指定的字符串

使用示例:

StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
String result = sb.toString();
System.out.println(result); // Hello World
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值