Java正则表达式常用类

1)字符串的替换

public String replaceAll(String regex, String replacement),意思就是利用String regex正则式,使用String replacement替换内容。比如我们来个简单的例子,我们将123替换为明曦君,并进行输出,

package test4;

public class Csdn51_1 {
    public static void main(String[] args) {
        String str = "你好,我是123".replaceAll("\\d+", "明曦君");
        System.out.println(str);
    }
}
12345678
run:
你好,我是明曦君

2)字符串的分解,public String[] split(String regex)

使用正则表达式作为指定的分隔符,并将分隔后的内容进行保存,保存在字符串数组中。我们同样举一个简单的例子,我们来匹配字符串中的数字

package test4;

public class Csdn51_1 {
    public static void main(String[] args) {
        String str1 = "你好,明曦君,今天是2020年3月10日";
        String str2 = "2020年3月10日,晴";
        String regx = "\\D+";
        String[] s1 = str1.split(regx);
        String[] s2 = str2.split(regx);       
        System.out.println("第一句长度:"+s1.length);
        System.out.println("第二句长度:"+s2.length);
        System.out.println("第一句输出如下:");
        for(String s: s1){
            System.out.println(s);
        }
        System.out.println("第二句输出如下:");
        for(String m: s2){
            System.out.println(m);
        }   
    }
}
run:
第一句长度:4
第二句长度:3
第一句输出如下:

2020
3
10
第二句输出如下:
2020
3
10

这里我们需要注意的是为什么同样多的数字,而输出的长度不一样,我们这里可以理解为,split默认的是在开头的左边应该是我们希望匹配的,如果没有就返回一个空值,所以就看到第一句话的长度是4第一个字符输出的空值,而第二句话开头是数值所以就不返回空值长度为3.

3)字符串的分解,StringTokenized类

同样这个类也是用来分解字符串,但这个方法相对于split来说更适合适用于字符串更简单一点的情况,并且这两个方法的使用也不同,split是使用正则表达式将保留的值储存在字符串数组中,而Tokenizer是需要通过创建对象,然后不使用正则表达式,将值储存在对象中。当然Tokenized还配套有读取统计方法,下面我们来看一下例子,

package test4;

public class Csdn51_1 {
    public static void main(String[] args) {
        String s = "My dear, 明曦君!";
        StringTokenizer ss = new StringTokenizer(s, " ,!");
        int x = ss.countTokens();
        System.out.println(x);
        while(ss.hasMoreTokens()){
            String sss = ss.nextToken();
            System.out.println(sss);
        }    
    }
}
3
My
dear
明曦君

这里对StringTokenized中的几个函数进行说明, hasMoreTokens():该方法只要字符序列中还有要匹配的符号即计数变量大于0,该方法就返回true,否则返回false。用于控制循环输出; nextToken():该方法是可以逐个获取String对象的字符序列,每调用一次nextToken(),都将获得String中的下一个语言符号。 countTokens():是用于统计我们能够调用多少次nextToken,也就是可以在异常出现前,返回剩余调用nextToken的次数,这里返回的是3说明,还可以调用3次,输出3个字符串序列。

例子

计算“电脑:5800.1元,手机:2999.9元,耳机:50.0元”该语句中的花销总和,

package test4;

public class Csdn51_1 {
    public static void main(String[] args) {
        String s = "电脑:5800.1元,手机:2999.9元,耳机:50.0元";
        String[] ss = s.split("[^0123456789.]+");//提取数字与小数点
        System.out.println(ss.length);
        float sum = 0;
        for(int i =1; i<ss.length; i++){
            sum = sum + Float.parseFloat(ss[i]);//字符串转换为浮点型进行计算
        }
        System.out.println("总费用为: "+sum);
    }
}
run:
4
总费用为: 8850.0

results matching ""

    No results matching ""