字符串相关知识
String
API:应用程序编程接口
Scanner Random
帮助文档:java.long:不需要import
1.打开API帮助文档
2.点击显示,找到索引下面的输入
3.输入框输入类名并点击显示
4.查看类所在包
5.查看类的描述
6.查看构造方法
7.查看成员方法
字符串String
String StringBuilder StringJonier StringBuffer Pattern Matcher
String
java.long.String类中,不用导包
字符串:创建后不能修改
创建String对象的两种方式
1.直接赋值:String s1="acf"
2.new:
//传递一个字符串,根据传递的字符串内容再创建一个新的字符串对象
String s2 = new String();
System.out.println("@"+s2+"!"); //@!
```
//传递一个字符串,根据传递的字符串内容,再创建一个新的字符串对象
String s3 = new String("abc");
System.out.println(s3);
```
//传递一个字符串数组,根据字符数组的内容在创建一个新的字符串对象
//需求:修改字符串的内容 abcd--->bcde
char[] chs = {'a','b','c','d'};
String s4 = new String(chs);
System.out.println(s4); //abcd
//传递一个字节数组,根据字节数组的内容创建一个新的字符串对象
//场景:网络中传输的为字节信息,字节信息转换为字符串
byte[] bytes={97,98,99,100};
String s5 = new String(bytes);
System.out.println(s5); //abcd
内存分析: 栈 堆 方法区
栈:方法有关,方法运行时进栈 执行完毕出栈
堆:new出来的对象
方法区:方法加载
String Table串池
直接赋值:系统检测串池中是否存在该字符串,若有则复用,无则创建新的。
new:main方法进栈,不会复用
常用方法
- 比较
==比较基本数据类型,比较数据值
比较引用数据类型:比较的是地址值
字符串内容比较:
boolean equals:完全一致结果为true 否则为false
boolean equalsIgnoreCase:忽略大小写的比较
遍历字符串
public char charAt(int index);根据索引返回字符
public int length();返回字符串的长度
数组长度 数组名.length
字符串长度:字符串对象.length()
遇到题目进行分析
1.我要干什么?
2.干这件事,需要什么才能完成
3.调用处是否要继续使用方法的结果呢
截取方法:String substring(int beginIndex,int end,int endIndex) 包头不包尾,包左不包右
重载方法,截取到末尾:String substring(int beginIndex) 截取到末尾
替换:String replace(旧值,新值);返回值才是替换的结果
类StringBuilder
可以看作一个容器,创建之后内容可以变化,String返回值才可以变化 而StringBuilder 类可以变化
创建方法
空参:public StringBuilder()
有参:容器中有初始值public StringBuilder(String str)
成员方法
public StringBuilder append(添加数据,并返回对象本身)
public StringBuilder reverse() 反转内容
public int length() 返回长度
public String toString() 转换为String类型
使用String Builder的场景:反转和拼接字符串时
StringJoiner
可变的操作字符串的容器
构造方法
public StringJoiner(间隔符号)
public StringJoiner(间隔符号,开始符号,结束符号)
成员方法
public StringJoiner add(添加的内容) 添加
public int length() 返回长度
publicString toString() 返回一个字符串
浙公网安备 33010602011771号