【JavaSE——APIday01下StringBuilder的学习】

系列文章目录

第一章APIday01下StringBuilder的学习


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档


一、StringBuilder

StringBuilder append():尾部增加
StringBuilder delete():删除
StringBuilder replace():修改,替换部分
StringBuilder insert():插入StringBuilder reverse()
StringBuilder reverse():反转
public static void main(String[] args) {
        //创建一个无参的构造器,构造一个不带任何字符的字符串生成器,其初始容量为 16 个字符。
        StringBuilder builder = new StringBuilder();
        System.out.println(builder.length());

        //增
        builder.append("wpo");

        //将当前的StringBuilder以String的形式输出
        //查
        System.out.println(builder.toString());

        //插
        builder.insert(0, 1);
        System.out.println(builder);

        //换
        builder.replace(0,1,"0");
        System.out.println(builder);

        //删
        builder.delete(0,1);
        System.out.println(builder);

        //改:replace:使用给定 String 中的字符替换此序列的字符串中的字符。
        builder.replace(1,4,"我爱我的祖国");
        System.out.println(builder);

        //构造一个不带任何字符的字符串生成器,其初始容量由 capacity 参数指定。 (初始容量)
        builder = new StringBuilder("12345678");
        System.out.println(builder.length());
        System.out.println();

        StringBuilder builder1 = new StringBuilder();
        builder1.append("我爱Java")
                .insert(6,",Java爱我!!!")
                .replace(6,7,"。")
                .delete(builder1.length()-1,builder1.length());
        System.out.println(builder1);
        //反转
        System.out.println(builder1.reverse());
    }

二、正则表达式

1.理论知识

2.String支持的正则表达式

  • Boolean matches(String regex)匹配,使用给定的正则表达式验证当前字符串的格式是否符合要求,若符合则返回true,不符合则返回false

代码如下(示例):

public static void main(String[] args) {
        System.out.println("请输入一个邮箱:");
        Scanner sc = new Scanner(System.in);
        String email  = sc.next();
        /*
            用户名@域名.后缀
            [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
         */
        String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
        boolean match = email.matches(regex);
        System.out.println(match ? "是邮箱" : "不是邮箱");
        }

		//例子:
		System.out.println("请输入一个网址:");
        String url = sc.next();
        String regex1 ="^(http:\\/\\/|https:\\/\\/)?[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}([\\/\\w.-]*)*\\/?$";
        boolean match2 = url.matches(regex1);
        System.out.println(match2?"是一个网址":"不是一个网址");
  • String[] split(String regex)拆分满足该正则表达式的部分,其余部分每段以数组形式返回

代码如下(示例):

    public static void main(String[] args) {
        System.out.println("请输入一个邮箱:");
        Scanner sc = new Scanner(System.in);
 /**
         * String支持正则表达式二
         * String[] split(String regex)
         * 将当前字符串按照满足正则表示的部分进行拆分,将拆分处的每段内容以数组形式返回
         */
        String line = sc.next();
        String[] data = line.split("[0-9]+");
        //输出长度
        System.out.println(data.length);
        System.out.println(Arrays.toString(data));

        //.比较特殊
        //也就是说在显示中想要表示个.在正则表达式中就要写\.,而在Java中要写\\.才能表示出正则表达式中的\.
        String line2 = "abc.def.ghi";
        data = line2.split("\\.");
        //[abc, def, ghi]
        System.out.println(Arrays.toString(data));

        //同理=+也一样
        line2 = "abc=+fff=+eee";
        data = line2.split("=\\+");
        //[abc, fff, eee]
        System.out.println(Arrays.toString(data));

        //去除=
        line2 = "abc=fff=eee";
        data = line2.split("=");
        //[abc, fff, eee]
        System.out.println(Arrays.toString(data));

        //如果去除连续的=
        line2 = "abc=+====fff===========+eee";
        data = line2.split("=+");
        //[abc, +, fff, +eee]
        System.out.println(Arrays.toString(data));
    }
  • replaceAll(String regex,String replacement)将满足正则表达式的内容换成对应的字符串。

代码如下(示例):

public static void main(String[] args) {
        String line = "abc123def456efi";
        /*
        将当前字符串中的连续数字部分替换为#
         */
        String str = line.replaceAll("[0-9]+","#");
        System.out.println(str);
        //将当前字符串中的数字部分替换为#
        str = line.replaceAll("[0-9]","#");
        System.out.println(str);
    }

点比较特殊,在字面上中想要表示点时,正则表达式中就要写\.,而在Java中要写\\.才能表示出正则表达式中的\.
同样的,正则表达式中\w在java中要写\\wjava才可以识别。

三、Object类(超类)

  • 在继承的关系下,位于所有类的顶端
  • Object类可以指向任何类型的对象
  • 常用的方法

import java.util.Objects;

/*
java中所有的类都继承自object
当我们定义的类没有使用extends显示的继承一个类是,编译器编译是会补充extends objece

 */
public class Point {
    private int x;
    private int y;

    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }

    @Override
    public String toString() {
        return "Point{" +
                "x=" + x +
                ", y=" + y +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        //是否为同一个对象,即new的名字是不是完全一样
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Point point = (Point) o;
        return x == point.x && y == point.y;
    }

    @Override
    public int hashCode() {
        return Objects.hash(x, y);
    }
}

总结

提示:这里对文章进行总结:

例如:以上就是今天要讲的内容,本文仅仅简单介绍了StringBuilder的使用,而StringBuilder提供了大量能使我们快速便捷地处理数据的函数和方法。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值