大数据分析技术之JAVA基础(五续正则表达式简单应用)

写在前面:今天接着分享JAVA中的实用类,本文的主要内容是对于正则表达式的一些简单操作的说明。

学习内容安排

JAVA基础课程学习:数据类型(一)、运算符表达式和程序结构控制(二)、面向对象基础:类与对象和接口(三)、面向对象基础:继承抽象多态封装(四)、异常类和常用实用类(五)、组件和事件处理(六)、IO和JDBC(七)、泛型和集合函数(八)。

五、异常类和常用实用类

3.正则式常用类
正则表达式对于在批量处理文本时有着方便快捷的作用是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);
    }
}
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

结语
好了,以上就是对于正则表达式在JAVA中比较简单的基础应用,对于正则表达式的Scanner类就不做讲解了。
谢谢阅读。

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值