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

embedded/2024/11/28 18:06:02/

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

java">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关键字创建的字符串对象(地址),尝试从堆区移动到常量区

java">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.ppmy.cn/embedded/141231.html

相关文章

[高阶数据结构四] 初始图论

1.前言 本篇着重讲解图的相关知识,大家跟随我的脚步往下阅读。 本章重点: 本章着重讲解图的基本知识,图的存储结构:邻接矩阵,邻接表以及图的模拟实现 2.图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构…

Tri Mode Ethernet MAC IP核详解

本文对 Vivado 的三速 MAC IP 核(Tri Mode Ethernet MAC,TEMAC)进行介绍。 在自行实现三速以太网 MAC 控制器时,GMII/RGMII 接口可以通过 IDDR、ODDR 原语实现,然而实际使用中自己实现的模块性能不是很稳定&#xff08…

读书笔记_《创华为.任正非传》_精华书摘

人生经历 43岁,开始创建华为 爷爷:金华火腿乡间厨师 父亲: 1910年生,北平民大经济系读书->职业学校任教->国民党兵工厂会计,组织读书会(读书会后来有很多人在新中国成立后成为高级干部。) 母亲: 高中毕业,乡村教师&#xf…

IAR Embedded Workbench for Arm 使用技巧

1 C-RUN C-RUN直接集成在IAR Embedded Workbench for Arm中,在代码执行过程中进行动态代码分析,及时发现运行时发现的实际错误。   C-RUN可以检查算术问题、边界问题和堆完整性,各个功能特点: 算术问题: 包括溢出、…

强制大模型输出json

一个是api里面有一个return_json的选项设置为True. 这个要看大模型厂商是否提供这个选项了.是利用提示词: 返回信息格式为: json格式, 包含一个字段code用整数1-4表示函数编号, 一个字段input用一个字符串表示函数的输入参数. 请只返回json, 返回其他数据都会得到批评 这个句子…

市面上好用的AIPPT-API接口

文多多 AiPPT | 一键搞定PPT 文多多 AiPPT | 一键搞定PPT文多多AiPPT,一键搞定PPT。AI根据主题、文档、网址智能生成PPT文档,同时支持在线编辑、美化、排版、导出、一键动效、自动生成演讲稿等功能,告别工作烦恼!https://docmee.…

群论入门笔记

群的基本定义 群由一组元素 G 和一个运算(常用符号包括 ,x , 或 ∗)组成。 封闭性 对于任意两个元素 x,y∈G,运算 x * y 的结果仍然属于集合 G,即: ∀x,y∈G,x∗y∈G. 结合律 对于任意 a,b,c∈G&…

scrapy框架学习

scrapy框架学习 Spider(蜘蛛): 详细说明:Spiders是Scrapy框架中用户自定义的类,它们是爬取过程的起点。每个Spider定义了爬取的逻辑,包括起始URLs、如何跟踪链接以及如何解析页面内容。Spiders通常会生成两种输出:提取的数据(通常以Item对象的形式)和新的请求(Reques…