1-31 正则表达式 String Buffer String Builder

一.作用:判断指定的String类型值 是否符合指定的规则存储的公式,正确规则表达式

二.为了避免发开中存在差异,Java提出了一些指定的字符,进行正则的编写

符号含义
^行起始符 (实际开发中不常用)
$行结束符(实际开发中不常用)
[]表示某一个位置 , 当且仅当该位置上只有一种可能 [] 可以省略 ; 一个位置上出现多种可能 | 可以省略
|按位 或 , 表示指定位置上出现多种可能
()表示 连续多个位置,格式的组合 ;出现多种可能的时候 | 一定不能省略
{}数据值的个数范围
{n} -- 表示 正好出现 n 个
{n,} -- 表示 至少出现 n 个
{n,m} -- 至少出现 n 个 至多 出现 m个 包含 m
\d表示 0-9 十个数字
\w表示 A-Z a-z 0-9 _
-表示 A 到 B 包含区间端点
.表示任意的一个符号
+表示至少出现1次 ,等价于 {1,}
\u4e00-\u9fa5表示中文的取值范围 (死记硬背)

三 正则表达式应用

1.方法:由String类提供的

public boolean matches(String regex)

根据指定的正则表达式(regex)判断String类型的值是否合法

四 正则拓展

1.拓展方法:由String类提供

public String[] split(String regex)

根据指定的正则表达式进行String的拆分 String[]

2.需求:给定的String str="00,10,02,-8,5"进行升序排序

import java.util.Arrays;public class RegexTest {public static void main(String[] args) {String str="00,10,02,-8,5";/*** 转换成 字符串数组* 分隔符号要一直才可以*///按照,拆分String[] nums=str.split(",");System.out.println("排序前:"+ Arrays.toString(nums));//Arrays.sort(nums);//不对for (int i = 0; i < nums.length; i++) {for (int j = 0; j < nums.length-i-1; j++) {if(Integer.parseInt(nums[j])>Integer.parseInt(nums[j+1])){String temp=nums[j];nums[j]=nums[j+1];nums[j+1]=temp;}}}System.out.println("排序后:"+Arrays.toString(nums));}
}

五.StringBuffer和StringBuilder类

1.什么是Buffer/Builder?

缓存(缓冲)技术:由于String底层实现原理 char[],数组一旦创建长度固定,不利于字符串删除或者新增操作,Java提出了缓存技术,在JVM虚拟机中 开辟指定的缓存空间,完成数据的操作,操作完成之后,还给堆栈

2.什么是Builder

对指定的内容重新定义;

3.StringBuffer类和StringBuilder类关系

都是对String类延伸(照抄之后,进行新功能的拓展)

StringBuffer类 对线程操作JDK1.0版本;StringBuilder类似于单线程操作对StringBuffer重新构建JDK5版本

4.StringBuffer类为例演示

①定义格式: public final class StringBuffer{}

②常用API

(1)实例化对象

public StringBuffer()---实例化对象,并创建 缓存区

public StringBuffer(String value)

实例化对象,并且将指定的String存储到缓存区

(2)与String类中同名的方法,参考StringAPI

(3)新增

public StringBuffer append(Object obj)

将任意的数据类型 追加到缓存区的末尾

public StringBuffer insert(int index,object obj)

将任意的数据类型从指定的位置 插入到缓存区中

(4)删除

public StringBuffer delete(int  start,int  end)

删除字符串中指定范围的所有数据 其中包含start 不包含end

public StringBuffer deleteCharAt(int index)

删除指定位置上的字符

(5)修改

public StringBuffer replace(int start,int end,String value)

用指定的字符串 替换 字符串中指定范围的数据,其中包含start不包含end

public void setCharAt(int index,char ch)

使用指定的字符替换原有位置上的字符

public class StringBufferAPITest {public static void main(String[] args) {StringBuffer sbuf=new StringBuffer("多线程安全");//向后追加sbuf.append(true).append(3.14);System.out.println(sbuf);//插入 t的后面sbuf.insert(6,666);System.out.println(sbuf);sbuf.delete(4,15);System.out.println(sbuf);sbuf.deleteCharAt(3);System.out.println(sbuf);//替换sbuf.replace(0,4,"我是替换者");System.out.println(sbuf);sbuf.setCharAt(4,'$');System.out.println(sbuf);}
}

5.StringBuilder

①定义格式:public final class StringBuilder{}

②常用的API与StringBuffer一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/786559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

量化交易入门(三十八)CCI指标Python实现和回测

今天我们先单纯用CCI指标来完成策略的编写&#xff0c;后续我们会改进这个策略&#xff0c;将CCI指标和前面讲到的MACD和RSI相结合来优化&#xff0c;看看我们优化后的效果会不会更好。 一、量化策略 CCI指标在量化交易中的策略&#xff1a; 在以下情况下生成买入信号&#…

预处理指令——一些比较少见的概念

前言&#xff1a;预处理是我们的c语言源代码成为可执行程序的第一个步骤。而宏和预处理指令都是在这个阶段完成。本节内容就是关于宏和预处理指令相关知识点的解析。 目录 宏 预定义符号 #define定义常量 #define定义符号 #define定义宏 带副作用的宏参数 宏的替换规则…

基于SSM的“超市管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“超市管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能设计图 首页 后台管理登录页面 采购查询管理 采购员登录…

linux正则表达式之[]

1.[]含义 linux正则表达式[]表示字符集合的重复特殊字符的符号。 2.样例 正则表达式[]样例 命令1&#xff1a; grep -n "p[wldn]" anaconda-ks.cfg #需要特别注意的是&#xff0c;在[ ]中“仅代表一个待搜索的字符”。命令1的意思是搜索含有(pw)或(pl)或(pd)或…

配置 施耐德 modbusTCP 分布式IO子站 RPA0100

1. 总体步骤 2. 软件组态&#xff1a;在 Unity Pro 软件中创建编辑 PRA 模块工程 2.1 新建项目 模块箱硬件型号如下 点击 Unity Pro 软件左上方【新建】按钮&#xff0c;选择正确的 DIO 模块型号、背板型号 2.2 模块组态 2.2.1 拖拽添加模块 双击【配置】菜单下的【0&…

数据库设计-MySQL设计小册

前言 最近回顾了下MySQL相关的知识&#xff0c;比如索引、几大日志、事务、MVCC、SQL执行流程、Buffer Pool等等。理论知识看了一大堆&#xff0c;自然还是需要实践的&#xff0c;第一个反应就是数据库设计规范。项目开发中&#xff0c;数据库设计自然是重要的一环&#xff0c…

dotcpp题目 1020: [编程入门]猴子吃桃的问题

一、题目 题目描述 猴子吃桃问题。猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个。 第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时&#xff0c…

关于loop( ) 阻塞和非阻塞探究

一、SIR的补充 在上几篇博客中&#xff0c;有朋友私信问我&#xff0c;在ticker函数程序和中断服务程序&#xff08;ISR&#xff09;中写 物联网请求报错。怎么回事&#xff0c;在此解释。控制台如下 1.1解释 在使用 Ticker 函数和中断服务程序&#xff08;ISR&#xff09;时…

ARM IHI0069F GIC architecture specification (6)

2.3 亲和路由 亲和路由是一种基于分层地址的方案&#xff0c;用于识别中断路由的特定PE节点。 对于 PE&#xff0c;AArch64 状态的亲和性值在 MPIDR_EL1 中定义&#xff0c;AArch32 状态的亲和性值在 MPIDR 中定义&#xff1a; • 关联路由是一个由四个8 位关联字段组成的32 位…

问题解决:gorm查询oracle库表,返回struct字段数据为空的问题

package model// 表对应的struct // github.com/cengsin/oracle v1.0.0 // gorm.io/gorm v1.21.16 // 注意&#xff1a;column:USERNAME字段必须大写&#xff08;oracle表中字段名大写&#xff09;&#xff0c;否则查询出的struct字段值会为空 type BBUser struct {Username …

开源简单方便功能强大的Devops工具:Goploy

Goploy&#xff1a;加速您的DevOps旅程&#xff0c;拥抱无缝部署——选择Goploy&#xff0c;让您从繁琐的发布与回滚中解放出来&#xff0c;尽享高效、智能与便捷的自动化部署力量&#xff01; - 精选真开源&#xff0c;释放新价值。 概览 现在大部分流行的发布工具功能虽然强…

Leetcode-2810-故障键盘-c++

题目详见https://leetcode.cn/problems/faulty-keyboard/ 题解 这道题的关键是如何合理地使用STL&#xff0c;毕竟是一道简单题。 之前常用到的Vector容器是单向开口的连续内存空间 deque则是一种双向开口的连续线性空间&#xff0c;又称双端动态数组。所谓的双向开口&#x…

Mongodb字段更新操作符$currentDate

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第54篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。 本文基于Mongodb的官方文档&#xff0c;整理了Mongodb字段更新操作符$currentDate的定义&#xff…

[数据结构]动态顺序表制作源码分享

顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构&#xff0c;一般情况下采用数组存 储。在数组上完成数据的增删查改。 顺序表一般可以分为&#xff1a; 1. 静态顺序表&#xff1a;使用定长数组存储元素 2. 动态顺序表&#xff1a;使用动态开辟的数组存储。…

bugku-web-速度要快

发现phpsessid 从上述提示 提示发送post请求&#xff0c;并且带有参数margin 发送后发现报文头部有一个字段叫flag&#xff0c;但好像每一次flag都不一样 构建Python脚本 request requests.Session()data {margin:find, } for i in range(50):html request.post(urlhttp:/…

2024年04月在线IDE流行度最新排名

点击查看最新在线IDE流行度最新排名&#xff08;每月更新&#xff09; 2024年04月在线IDE流行度最新排名 TOP 在线IDE排名是通过分析在线ide名称在谷歌上被搜索的频率而创建的 在线IDE被搜索的次数越多&#xff0c;人们就会认为它越受欢迎。原始数据来自谷歌Trends 如果您相…

websocket多级nginx代理

在使用多层Nginx代理时&#xff0c;WebSocket的连接可能会遇到一些问题&#xff0c;因为WebSocket连接是持久化的&#xff0c;它需要Upgrade头部来确认升级到WebSocket协议。在多层代理的情况下&#xff0c;每层代理可能会修改或丢失这个Upgrade头部信息。 为了确保WebSocket能…

深度学习训练过程中,常见的关键参数和概念讲解

深度学习训练过程中的关键参数和概念对于构建、理解和优化模型至关重要。以下是一些最常见的参数和概念&#xff0c;以及它们的简要解释&#xff1a; 1. 学习率&#xff08;Learning Rate&#xff09; 学习率是优化算法中最重要的参数之一&#xff0c;它控制着权重调整的幅度…

如何借助Idea创建多模块的SpringBoot项目

目录 1.1、前言1.2、开发环境1.3、项目多模块结构1.4、新建父工程1.5、创建子模块1.6、编辑父工程的pom.xml文件 1.1、前言 springmvc项目&#xff0c;一般会把项目分成多个包:controler、service、dao、utl等&#xff0c;但是随着项目的复杂性提高&#xff0c;想复用其他一个模…

mkcert生成ssl证书+nginx部署局域网内的https服务访问问题

文章目录 mkcert生成ssl证书nginx部署局域网内的https服务访问问题1、下载mkcert查看自己的电脑是arm还是amd架构 2、安装mkcert3、测试mkcert是否安装成功4、查看CA证书存放位置5、打开windows的证书控制台6、生成自签证书,可供局域网内使用其他主机访问以下是nginx部署https服…