Java学习-之String深入和正则表达式-20230428

不管现实多么惨不忍睹,都要持之以恒地相信,这只是黎明前短暂的黑暗而已。不要惶恐眼前的难关迈不过去,不要担心此刻的付出没有回报,别再花时间等待天降好运。真诚做人,努力做事!你想要的,岁月都会给你。Java学习-之String深入和正则表达式-20230428,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

Java学习-之String深入和正则表达式



引出

String的是怎么创建的,为什么==不能用来比较比较字符串相等


一、String的创建

String str = new String(“hello”);
String str = “hello”;

1.String str = new String(“hello”);

执行上述代码,底层进行了如下工作,在栈内存里存放变量str,在堆内存新创建一个String的对象,在常量池空间中创建常量hello,如果存在则不创建;创建了一个或两个对象。
在这里插入图片描述

String str = new String("hello");

2.String str = “hello”;

栈内存中的str指向常量池中的hello
在这里插入图片描述

String str = "hello";

二、String的特点

1.String的内容

String的内容是不可写的,调用String的方法,会产生一个新的字符串

2.String的==和equals

  • 基本类型:==相等
  • 引用类型:==两个引用是否指向同一个对象
  • 字符串比较相等,用equals,比较内容是否相等

带来的问题,字符串拼接的效率问题,每次拼接都会产生新的字符串,如何优化

三、如何提高字符串拼接操作的效率?

1.StringBuilder

实现字符串高效拼接

StringBuilder str = new StringBuilder("hello");
long t1 = System.currentTimeMillis(); // 当前毫秒数
for (int i = 0; i < 100000; i++) {
            str.append(" world ");

        }
long t2 = System.currentTimeMillis();
System.out.println("耗时:"+(t2-t1)+"ms");

四、正则表达式

表达式 作用
[0-9] :0-9的一个数字
[a-z] 小写字母
[A-Z] 大写字母
[a-zA-Z]: 大小写字母
[^0-9] 非数字
+ 最少一个
{n} 只有n个
{n,m} n到m之间
? 0个或一个

判断身份证号是否合法

// 判断身份证号码是否合法
String identity = "154258412707828487g";
String regex = "[1-9][0-9]{16}[0-9Xx]"; // 首位不能为0,末尾为X,x数字;
System.out.println(identity.matches(regex));

中文字符的编码范围\u4e00-\u9f85

// 输入一个随意的字符串,找出里面的所有中文字符。
String inputCinese = "你好saldf猫猫的饭盆2938930 来说较大了";
String regexChina = "[^\u4e00-\u9f85]";
String allChinese = inputCinese.replaceAll(regexChina,"");
System.out.println("找到所有中文字符如下:"+allChinese);

判断邮箱的合法性

// 判断邮箱的合法性
String email = "AWD83456a465234@qq.com";
String regex = "[0-9a-zA-Z]+[@]{1}[a-z]{1,5}[.]{1}[a-z]{3,10}";
System.out.println("邮箱合法性:"+email.matches(regex));

总结

1.String是如果实现的,拼接字符串的高效方法;
2.正则表达式初步;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/165173.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!