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

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




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两边的类型要相同

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值