Java基础—String
1、String类
JDK1.8保存的字符数组
JDK1.9保存的字节数组
2、字符串:匿名对象
字符串的比较:
a:"=="进行数值的比较
b:“equals”,类提供的比较方法,进行内容的判断,比较内存空间
3、字符串常量
1)直接赋值:将一个匿名对象设置一个具体的引用赋值
2)任何使用”“定义的字符串常量都是String类的匿名对象
3)对字符串是否相等的判断 ”字符串“ .equals(另一个字符串)
4、String类的两种实例方式的比较
1、直接赋值:
1)两对象比较:StringA == StringB :是地址判断,是否指向一个堆内存。因为有专门的字符串池。
2)直接赋值的过程中,可以实现池数据的自动保存,可减少对象的产生,提高操作性能
2、构造方法实例化:
1) String str=new String(”mldn“) :new 和匿名对象都会开辟一个内存空间,会产生以后个垃圾空间
2)new开辟自己的堆内存空间,不会进入对象池中,手动入池:intern()方法
5、String对象池
1、目的:实现数据的共享处理
2、分为:
1)静态常量池:指程序在加载(.class)时将此程序中的保存的字符串、l普通常量等进行分配
2)运行时常量池:当一个程序加载后。里面可能有一些变量
3、静态常量池和运行时常量池的比较只能通过equals方法
6、字符串修改分析
1、String类中包含的是一个数组,数组最大缺点在于长度不可改变,设置空间的开辟,开辟长度是固定的
2、修改会产生垃圾空间,不要频繁修改
7、主成分组成分析
- public:访问权限,主方法是公共的
- static:程序的指向是通过类名称完成的,表示此方法是由类直接调用的。
- void:没有返回值
- main:系统定义的方法名称
- String args[] :字符串的数组,可以实现程序启动参数的接收
8、字符串与字符
- charAt(int):指定索引位置的字符
- tocharArray():将字符串转换为字符数组
9、字符串比较
- equals():区分大小写,返回布尔值
- equalsIgmoreCase():不区分大小写,返回布尔值
- compareTo():返回int数据,有3种取值。进行字符串的大小比较。
- compareTogmoreCase()不区分大小写,返回int数据,有3种取值。进行字符串的大小比较。
10、字符串查找
- contains():判断子字符是否存在,返回布尔值。 strA.contains(strB)
- indexOf():从头查找指定字符串位置,返回int,-1.-1表示不存在。还可以指定位置查找指定字符 strA.indexOf(strB)
- startsWith():判断是否由指定的字符串开头。
- endWith():判断是否由指定的字符串结尾。
- lastIndexOf():由后向前查找指定字符串
11、字符串替换
- replaceAll():str.replaceAll(“l”,“X”)将所有的l替换为X
- 2、replaceFirst():str.replaceFirst(“l”,“X”)将第一个的l替换为X
12、字符串拆分
- split():String result [] =“hello world”(" ")空格拆分
- split():String result [] =“hello world”(" ",2)空格拆分,之拆分两个
- 如果拆不了,使用转义字符:”\\“
13、字符串截取
-
subString(): strA.subString(4,8)截取索引值4-8的子字符串
-
举例:str=”id-photo-李四.jpg“,要求截取名字
int beginIndex=str.indexOf("-",strIndexOf(“photo”))+1;//从-位置到photo结束的索引+1省略-
int lastIndex=str.indexOf(”.")
str.subString( beginIndex,lastIndex)
14、字符串格式化
format:根据指定结构进行文本结构展示
eg:String str =String.format(“姓名:%s 、 年龄: %d”)
15、其他方法
-
intern:手动入池
-
concat:描述的字符串的连接
-
IsEmpty:是否有空字符。” “和null一个有实例对象,一个没有
-
length:判断字符串的长度
-
trim:驱逐空格
-