当前位置: 首页 > article >正文

Java入门:17.正则表达式,String的intern方法,StringBuilder可变字符串特点与应用,+连接字符串特点--001

1 String中的常用方法2

1.1 split方法

  • 将字符串按照指定的内容进行分割,将分割成的每一个子部分组成一个数组

    分割内容不会出现在数组中

  • 实际上该方法不是按照指定的简单的符号进行分割的,而是按照正则表达式进行分割

1.2 正则表达式

  • 用简单的符号组合表示更为复杂的字符串内容

  • 可以对某一个字符串进行内容检测(看看目标字符串是否包含正则所表示的那部分子串内容)

  • 检测成功后,可以根据需求作进一步的处理,包括:替换,分割等

  • 在String字符串中提供了下面几个与正则相关的方法

    1. s.matches("\\d"); 全串检测

    2. s.split("\\d"); 拆分

    3. s.replaceAll("\\d","A"); 替换

符号表示

  • a 要求字符串中包含一个字母a

  • ab 要求字符串中包含ab这样一组连续的字符

  • a|b 要求字符串中包含a或b字母

  • [^abcd]要求字符串中包含abcd中至少一个

  • (ab)|(cd) 要求字符串中包ab或cd组合中的一个

  • [a-z]

  • [A-Z]

  • [0-9]

  • [a-zA-Z0-9]

  • \d 表示所有所有数字 [0-9]

  • \w 表示所有字符

  • \s 表示空格

  • \D \W \S 表示除xx以外

  • . 表示所有符号

注意1: \d中的\是正则表达式中的转义,我们现在要在java程序中,需要再增加一个\ \\d

注意2: 在正则中.表示所有符号。如果我们就像表示.这个符号 ,需要对.进行转义 \\.

数量表示

  • a{2} 表示字符串中包含两个连续的a

  • a{,3}表示字符串中包含最多3个连续的a , a, aa , aaa

  • a{1,}表示字符串中包含至少1个连续的a

  • a{1,3}表示字符串中包含1到3个连续的a

  • a+ 表示字符串中至少包含1个连续的a

  • a*表示字符串中包含0或多个a

  • a?表示字符串中包含0或1个a

public static void main(String[] args) {
//        String reg = "((139)|(136)|(171)|(196))\\d{8}" ;
//        String s = "13613640262" ;
//        System.out.println(s.matches(reg));
//        if(s.startsWith("139") || s.startsWith("136")||s.startsWith("137")  && s.length() == 11)
​
//        a@qq.com
//        String reg = "([0-9a-zA-Z].*)@((qq)|(163)|(sina))\\.((com)|(cn))" ;
//        String s = "aaa@126.com";
//        System.out.println(s.matches(reg));
​
        String reg = "(136)|(137)|(138)" ;
        String s = "a136b137c138d" ;
        String abc = s.replaceAll(reg, "ABC");
        System.out.println(abc);
}

1.3 intern方法
使用""方式常见的字符串对象,会在堆的常量区中开辟存储空间。并且只会保留一份

intern方法的作用是将使用new关键字创建的字符串对象(地址),尝试从堆区移动到常量区

public static void main(String[] args) {
//        String s1 = new String(new char[]{'a','b','c'});
//        String s2 = "abc" ;
//        System.out.println(s1 == s2);
​
//        String s1 = new String(new char[]{'a','b','c'});
//        s1.intern();
//        String s2 = "abc" ;
//        System.out.println(s1 == s2);
​
//        String s1 = new String("abc");
//        s1.intern();
//        String s2 = "abc" ;
//        System.out.println(s1 == s2);
​
​
//        String s1 = new String(new char[]{'j','a','v','a'});
//        s1.intern() ;
//        String s2 = "java" ;
//        System.out.println(s1 == s2);
}


http://www.kler.cn/a/412679.html

相关文章:

  • Python 中的 Lxml 库与 XPath 用法
  • 多输入多输出 | Matlab实现TCN-GRU时间卷积神经网络结合门控循环单元多输入多输出预测
  • HTML详解(1)
  • JavaScript核心语法(3)
  • 2024 APMCM亚太数学建模C题 - 宠物行业及相关产业的发展分析和策略(详细解题思路)
  • java:aqs实现自定义锁
  • 循环神经网络(RNN)在自然语言处理(NLP)中的应用
  • MySQL【11】事务
  • 【简单好抄保姆级教学】javascript调用本地exe程序(谷歌,edge,百度,主流浏览器都可以使用....)
  • Git 进程占用报错-解决方案
  • 谷歌浏览器Chrome打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的
  • STM32 L4系列单片机低功耗模式(STOP模式)
  • 【TQ2440】02 串口连接进入u-boot
  • 【CSP CCF记录】201812-1第15次认证 小明上学
  • leecode56.合并区间
  • 华财术_号卡分销平台讲解(四大运营商+手机卡)
  • 【圣明先森】SPP集合划分问题(第二集)
  • 【halcon】Metrology工具系列之 get_metrology_object_model_contour
  • 关于人工智能
  • 365天深度学习训练营-第P6周:VGG-16算法-Pytorch实现人脸识别
  • 多线程编程:概念、原理与实践
  • EXCEL中的科学计数法:为何存在与用户的无奈
  • 排序算法之选择排序篇
  • GaussDB高智能--智能优化器介绍
  • 【人工智能】Python常用库-PyTorch常用方法教程
  • UE5 fieldSystemActor类