字符串----10-20

1.字符串的类型

(1)String

(2)StringBuilder

(3)StringBuffer

2.三者的区别

String类型的对象内容不可变

StringBuffer 和 StringBuilder类型的对象内容可变,而他们二者的区别在于:线程的安全性。

StringBuffer是线程安全的,StringBuilder是线程不安全的。

  1. 把String内容当成char[]进行操作

String str = "hello";
        char[] charArray = str.toCharArray();//把String内容取出来组成一个char数组
        char c = str.charAt(1);//根据下标返回该位置的char,会报StringIndexOutOfBoundsException
        int length = str.length();//获取字符串的长度

4.三个特殊方法

a. trim() --- 去掉字符串的前后空格

String newStr = "   hello world !   ".trim();
        System.out.println(newStr);

b. split() --- 字符串拆分(支持正则表达式)

String[] array = "2022-10-19".split("[-]");
        System.out.println(array.length);
        System.out.println(array[1]);

c. matches() --- 用来对字符串是否满足正则表达式进行校验

 System.out.println("请输入一个电话号码:");       
 String inputPhoneNum = new Scanner(System.in).next();
 if(inputPhoneNum.matches("8320([0-9]{4}|11[09]|120)")){
            System.out.println("匹配"); 
        }else{ 
            System.out.println("不匹配");
        }

5.正则表达式(Regex)

就是用来表示某种字符串内容组成形式的表达式。

比如,我们在注册网站的时候需要输入填写邮箱的时候,我们用到用户输入的邮箱账户这个字符串去调用matches方法去匹配正则表达式,匹配上就返回true,否则就为false。

我们需要认识三种括号:

A. [ ] ---- 表示一个字符: 比如, [0123456789] [abcd......] 简写可以写作[0-9]或者[a-z]

也可以写取不到某个数[ ^123]这样子进行书写。

B. {} -----表示之前出现的表达式的次数,简单的理解可以想成“*”数学当中的乘法,当然稍微有些许区别。

{n,m}-----他有两个参数,n---表示至少出现n次,m----表示最多出现几次。

{n,}------它表示至少出现n次,多了不限制。

{n}-----只能出现n次

{,m}------这个语法是没有的,不能写成这样子。

C. ()-------(组一|组二|组三) 表示满足其中任意一个都可以

实例

/*
            书写一个正则表达式验证:在ATM机器中取钱,只能是2万以及2万之内的百元整数
           
         */
​
System.out.println("请输入你要存款的金额:");
        String inputMoney = new Scanner(System.in).next();
        if(inputMoney.matches("(200|1[0-9]{2}|[1-9][0-9]?)00")){
            System.out.println("输入成功");
            int im = Integer.parseInt(inputMoney);
        }else{
            System.out.println("本ATM只接收2万及2万以内的百元整钞。");
        }

我们要明白Java中正则表达式中进行判断的时候,我们首先要明白题目要求,读题。

在进行判断的时候,我们要首先明白这个题目是几位数。

题目中,2万是五位数,“00000”----

我们再看,只能取款百元整钞,我们就能确定最后两位是“00”

(万位|千位|百位)00,这个就是作为题目进行分析。一个五位数,确定了个位和十位

即,百位只能有一位数字,千位只能有两位,万位有三个数字。

即:可以得到判断条件

(200|1[0-9] [0-9]|[1-9] [ 0-9]|[1-9])00

简写化为:

(200|1[0-9] {2}|[1-9] [ 0-9]?)00

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值