第13天 String,正则表达式,String 支持正则表达式,object,JavaBean

news/2024/9/23 4:47:46/

String

字符串.charAt(索引值):获取字符串中索引处的字符
char[] chars = 字符串.tocharArray(); : 将字符串转换为字符数组

String s = new String(字符数组名,起始索引,截取字符串总共的长度) :截取一部分字符数组转化为字符串
String s = new String(字符数组名):将全部字符数组转化为字符串

字符串1(对象).compareTo(字符串2(参数)):字符串是以字节数组形式存储的,当比较两个字符数组的时候是进行逐位比较,从左到右比较是否相等,相等就跳过,比较下一个,不相等就输出(str1的阿斯克码值-str2的阿斯克码值)并且不再向后比较。

string.join(“分隔符”,“要分割的值”“要分割的值”“要分割的值”)

字符串.contains(“查找是否包含的字符串”)如果包含,返回true

字符串.endsWith(“判断字符串是否以字符结尾”)

字符串.startsWith(“判断字符串是否以字符开始”)

" ".equals();
" ".equalsIgnoreCase;

byte[] bytes = 字符串.getBytes(); 将字符串中的字符转化为字节数组

UTF-8编码下一个汉字占三个字节;
gbk编码下一个汉字占两个字节;

字符串名.toUpperCase() : 将字符变为大写
字符串名.toLowerCase() : 将字符变为小写

字符串的哈希码值是固定的

字符串.indexOf(“要找的字符”,“从哪个索引开始查找”) : 获取要找的字符出现的第一个位置,找不到就返回-1;

字符串.intern():只显示值,不判断类型
字符串.isEmpy :是否是一个空字符串,包含空格
字符串.isBlank() :不包含空格看是否是一个空字符串

str.lastIndexOf(“需要找的字符串”) : 输出在字符串中的最后的位置
str.lastIndexOf(“需要找的字符串”,数字): 从数字之前向左找最近的字符串,如果数字位置恰好在需要找字符串的一部分,则不向前找,直接输出那个位置,即便只有一部分

str.replace(旧字符串,需要替换的新字符串)
str.substring(从这个索引后输出全部字符)
str.substring(1,3) : 从一索引输出,到2索引结束

正则表达式

字符串名.matches(“”)
返回true或者false
. 代表任意字符
\d 代表 [0-9]
\w 代表任意一个单词字符,等同于[a-zA-Z0-9_] 字母数字和下划线
\D 不是数字

[] 中括号表示匹配其中任意一个字符

[abc]? 表示可以匹配a或b或c或者什么也不写,不是a和b和c,其间的内容是或的关系

‘+’ 代表之前的字符至少出现了一次
'*'代表之前的字符可有可无
'?'代表之前的字符最多出现一次

正则数量词

[字符]+{n} : 这个字符恰好出现n次
[字符]+{n,}:这个字符出现n次及以上
[字符]+{n,m}:这个字符最少出现n次,最多出现m次

分组

()使用小括号
(abc){3} 表示abc整体出现3次
(abc|def){3} 表示abc整体或者def整体一共出现3次 abcdefabc

java">

String支持正则表达式方法

matches()

boolean match = 字符串变量名1.matches(正则表达式的字符串变量名2)

//字符串1是否符合正则表达式字符串变量名2,符合返回true,不符合返回false

replaceAll():替换

将当前字符串中满足正则表达式的部分全部替换为指定的字符串

String line = “isudf23231sdgniog2354”
字符串变量1 = 字符串变量1.replaceAll(“正则表达式”,“满足正则表达式部分要替换的字符串”)

split() 拆分

将当前字符串按照满足正则表达式的部分进行拆分,将拆分出的以String[]形式返回,相隔的字符用逗号分隔

String[] 字符串数组名 = 字符串名.split(“正则表达式”)

Array.toString(字符串数组的名)—>将字符串数组转化为字符串

注意:1. 如果正则表达式需要分隔字符串在第一个元素,则在字符串中以空字符串代替,只有一个逗号,前面什么也没有
2. 如果需要分隔的元素在字符串最后,则在输出时忽略
3. 如果有连续两个需要分隔的符号,则会输出一个空字符串

JavaBean

JavaBean的三点规则

  1. 属性都是私有的 private
  2. 提供私有属性对应的getter\setter
  3. 必须有一个无参的构造方法

object

所有类的直接间接继承的类,顶级父类

所有类默认继承Object类
为了多态,向上继承

两个常用的被重写的方法

toString

使用构造方法时,就会输出引用变量,默认会调用Object类的toString()方法
如果直接sout这个引用变量,输出的字符串格式为:类的全称@hashcode值,但这个结果对于我们来说没有意义,我们想要输出的是对象的属性值。使用默认的toString不能满足要求,需要重写Object的toString方法

equals

默认调用object类的equals(),内部还是在用==比较地址,没有参考意义,若想比较new出来的两个对象的属性值是否相同,需要重写equals()来比较属性值是否相同
重写alt+insert equals and hashcode()
重写之后就可以用equals比较属性值是否相等

Object类不能装八种包装类,其他的类都可以装

String和包装类在内部重写了equals,所以用equals比较字符串比较属性值.StringBuileder类没有重写equals(),比较的不是属性值。equals两边的类型要相同


http://www.ppmy.cn/news/1444917.html

相关文章

小米金融守护消费权益,共筑金融和谐新篇章

随着金融市场的日益成熟,金融消费者的权益保护问题逐渐受到广泛关注。作为金融服务体系中的重要一环,保护消费者权益不仅是金融机构的基本职责,更是其长远发展的基石。小米金融聚焦于金融消费者权益保护,通过梳理典型案例&#xf…

idea常用知识点随记

idea常用知识点随记 1. 打开idea隐藏的commit窗口2. idea中拉取Git分支代码3. idea提示代码报错,项目编译没有报错4. idea中实体类自动生成序列号5. idea隐藏当前分支未commit代码6. idea拉取新建分支的方法 1. 打开idea隐藏的commit窗口 idea左上角File→Settings…

微服务使用SockJs+Stomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(二)

大家好,我是程序员大猩猩。 上次我们实践了,Java后端如何完成SockJSStomp的配置实现。 微服务使用SockJsStomp实现Websocket 前后端实例 | Vuex形式断开重连、跨域等等问题踩坑(一) 那么今天我们做一下web vue端的是如何来实现…

web server apache tomcat11-28-Windows Service

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

为什么centos官方版不支持arm架构?

为什么centos官方版不支持arm架构? 1、资源限制:CentOS是由社区维护的开源操作系统,其开发和维护需要大量的人力和物力资源。由于ARM架构的设备相对较少,社区资源有限,因此官方版CentOS选择集中精力在x86架构上进行开发…

数据的定义及其分类

1)、数据:任何以电子或者其他方式对信息的记录 2)、重要数据:特定领域、特定群体、特定区域或者达到一定精度和规模的、一旦被篡改或者泄露、损毁,可能直接危害国家安全、经济运行、社会稳定、公共健康和安全的数据&a…

上海亚商投顾:沪指创年内新高 房地产板块掀涨停潮

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日继续反弹,沪指盘中涨超1%,重返3100点上方,深成指涨超2%&#…

密码学系列0-总述

通过这一系列文章,帮助读者能快速入门密码学安全性证明。 这一系列文章主要包括以下内容: 1.可证明安全的概念 2.密码学常用困难性问题:CDH,DDH,DLP,BDH等。然后讨论问非对称,对称双线性配对上困难性问题。讨论为什么对称双线性DD…