首页 > 编程语言 >java 第10天 String创建以及各类常用方法

java 第10天 String创建以及各类常用方法

时间:2024-10-17 22:45:55浏览次数:9  
标签:10 java String char 内容 长度 字符串 new

一.String创建的两种形式

1.通过new的当时

String str=new String();

2.不new的方式 

String s1="";

二.new 和不new的方式的区别是什么

不new创建的字符串首先是拿着值去常量池中查找,是否有该内容,有就用常量池该字符串的地址,没有的话在常量池中创建并使用

new的方式创建的字符串首先在堆中创建并赋予字符串值,然后到常量池中查找,如果有就不做任何处理,如果没有就在常量池中开辟该字符串

三.String和Stirng Buffer、String Builder的区别

底层他们都是利用char[]数组开辟空间

关于字符串追加问题

String 需要追加元素 肯定五步走 1 开辟新的数组空间 2 老元素复制到新的空间中 3 改变数组对象存储的地址 4 回收老数组空间 5 给最后的空间赋值【追加】

StringBuffer/StringBuilder 底层开辟的空间个数等于字符串的长度+16缓冲区

StringBuffer/StringBuilder 追加元素 直接先存储到缓冲区中 追加连接效率高

四.StringBuffer和StringBuilder之间的区别

StringBuffer 同一时间允许一个线程进行访问 效率较低 但是不会产生并发问题

StringBuilder 同一时间允许多个线程进行访问 效率较高 但是可能产生并发问题

五.String中常用的20个方法

跟长度相关 1个

int类型的 

 length() :

返回字符串的长度[字符的个数]  和密码校验有关

跟数组相关 3个

byte[]返回类型 

1. getBytes() :

byte[] getBytes() : 使用自己电脑的默认字符集【编码】将此 String 编码为 byte 序列。 ascii 一个字母 - 一个字节 / 一个汉字 - 两个字节 unicode 一个字母 - 两个字节 / 一个汉字 - 两个字节 【 char 】

 char[]类型的

2.toCharArray()

char[] toCharArray() : 打碎字符串 放入一个 char[] char[] 的大小 == 字符串的长度

String[]类型的

3.split(String x):  

String[] split(String x) : 按照指定的内容劈开字符串 打碎 String[] split("") "hello".split("") => [][]["h"] ["e"] ["l"] ["l"] ["o"] 如果要劈开的内容 x 在最开始出现一次 最前面多留一块空间 空间的内容是 "" 【空串】 如果要劈开的内容 x 在最后始出现一次 最后不会多留空间 如果要劈开的内容 x 在中间连续出现两次 中间多留一块空间 空间的内容是 "" 【空串】

注意:

利用split也能打碎字符串 为String 双引号类型””,而toCharArray 是单引号的char类型 

和判断相关5个

1. boolean equals(String)  

判断调用者和参数是否内容一样[精准匹配]

应用场景:密码精准匹配

2 boolean equalsIgnoreCase(String)

忽略大小写的比较

3 boolean contains(String s);

调用者字符串中是否包含s

参数字符串s在调用者中连续存在 并且参数字符串的长度要小于等于调用者字符串的长度

4 startsWith(String):

是否以指定内容开头

5 endsWith(String);

是否指定内容结尾

与改变内容相关【接收!】4个

1 toUpperCase();

将所有内容 字母变成大写

2 toLowerCase();

将所有内容 字母变成小写

3 String replace(String x,String y);  

将所有的x 替换成y

4 String replaceAll(String regx,String y);

第一个可以传入正则表达式 --范围

[]---》表示某一个位置的范围

[a-z] 小写字母

[A-Z]

[a-zA-Z] 所有字母

[\u4e00-\u9fa5] 所有中文范围

S1=s1.replaceAll(“[a-zA-Z]”,”*”);//表示 是字母就替换成*

 和下标有关的3个

1 charAt();

定位到每一个字符 charAt(int Index);返回的char类型 范围【0,str.length()-1】

2 indexOf(String str)

 判断参数内容第一次出现的内容 没找到返回-1

3 lastIndexOf(String);

返回参数内容所在的位置【最后一次】

2和3 来判断 当前内容只出现一次

Boolean matches(String regx); 这个很牛的

正则表达式

正则表达式
    "[A-Z]" 大写
    "[a-z]" 小写
    "[0-9]" 数字 "\\d"
    "[\u4e00-\u9fa5]" 中文

    [a-z]{1}  => [a-z] 校验一位
    [a-z]{3}  => [a-z] 校验长度是3 + 每一个字符必须是a-z
    [a-z]{3,5}  => [a-z] 校验长度[3-5] + 每一个字符必须是a-z
    [a-z]{3,}  => [a-z] 校验长度>=3 + 每一个字符必须是a-z

标签:10,java,String,char,内容,长度,字符串,new
From: https://blog.csdn.net/Miserables_/article/details/143017965

相关文章

  • java学习10.17
    今天继续Java图形化页面的学习窗口的分别显示importjava.awt.;importjava.awt.event.;publicclass_1016{publicstaticvoidmain(String[]args){Frameframe=newFrame();frame.setBounds(500,500,300,300);frame.setAlwaysOnTop(true);//设置GridLay......
  • 10.17日
    使用java.io包进行文件操作文件写入javaimportjava.io.FileWriter;importjava.io.IOException;publicclassFileWriteExample{publicstaticvoidmain(String[]args){try(FileWriterwriter=newFileWriter("example.txt")){writer.write("Hello,Wor......
  • 10.17noip联考总结
    10.17noip联考总结今天的命题人是xde……T1最后大约两个小时的时候想到了正解,但是在处理边界的时候出了问题,大样例一直过不了。其实只需要把数值统计下来再计算就行了。T2其实我们把给定的数给二进制拆开,就会发现其实就是对数进行调整把0调整为1。根据这个思路可以构造出一......
  • P11189 「KDOI-10」水杯降温
    P11189「KDOI-10」水杯降温-洛谷|计算机科学教育新生态(luogu.com.cn)庆贺吧,第一个真正意义上的自己干出来的紫题。总用时4h。时间复杂度\(O(n\logn)\),对于每个点我们去找它可以吹气的最大次数和最小次数。如果一个点的最小次数大于它的最大次数,或者在计算父节点u最......
  • springboot+vue基于Java的高校学生请假系统【开题+程序+论文】
    系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,高校教育管理方式正逐步向智能化、便捷化转变。传统的学生请假流程,往往需要学生填写纸质申请表,经过辅导员、院系多级审批,过程繁琐且效率低下。此外,纸质记录也不利于信息的长期保存与查询,易导致信息丢失或管理混......
  • Java 一维数组作为函数参数
    //一维数组的引用#defineSIZE5voidinput(inta[],intlen);voidoutput(inta[],intlen);//函数的声明intmain(void){   inti=0;   intarr[SIZE]={86,85,85,896,45};//同理五个数据只是偶然,可能会更多   //输入   input(arr,SIZE);......
  • Response & web登录操作 -2024/10/17
    响应行设置响应状态码:voidsetStatus(intsc);设置响应头键值对:voidsetHeader(Stringname,Stringvalue);response实现重定向resp.setStatus(302);resp.setHeader("location","https://www.4399.com");前端a.html登录,将结果传给后端,用request接收,用M......
  • 10.7 模拟赛总结
    T1ZYB建围墙题意给你一个数\(n\),求把这\(n\)个格子围起来所需的格子数的最小值。思路首先,我们尝试把图画出来枚举前面来找出规律。下面这张图里是1~10的距离。好的,我们可以发现。在这个图中7这个图内部是六边形。外面一圈绿色的也是六边形。这个时候我们发现数据中......
  • 2024.10.17
    DATE#:20241017ITEM#:DOCWEEK#:THURSDAYDAIL#:玖月拾伍TAGS<BGM=“呼唤落花之名-MoreanP”><oi-contest><[NULL]><[空]><[空]>我携落花与浪漫给予你,给予温柔本身。距2024CSP-S还有\(\textbf{0x8}\)天!!!比赛主页-20241017高一csp模拟赛A......
  • [10.17]CSP模拟赛
    本场比赛中小L的std挂了样例,所以他需要唱歌~俗话说暴力要打满,但是暴力把数据范围打多了就一点不好了。赛前发现可以提前看题,但是昏昏欲睡的我决定先去睡觉。赛时睡醒了,开题。看到T1,一眼发现一种病毒要不把它所在的矩形全部删除,要不就不用管,所以很自然地想到预处理出每......