Java-String类

String 类


字符串构造
Java-String类_第1张图片


String是引用类型,内部并不存储字符串本身
Java-String类_第2张图片


Java-String类_第3张图片
s1和s3引用的是同一对象
Java-String类_第4张图片


Java-String类_第5张图片
Java-String类_第6张图片


String对象的比较

= = == ==比较是否引用同一个对象
对于引用类型变量, = = == ==比较两个引用变量引用的是否为同一个对象
Java-String类_第7张图片


boolean equals(Object anObject) 方法:按照字典序比较
Java-String类_第8张图片


int compareTo(String s) 方法

  1. 先按照字典次序大小比较,如果出现不等的字符,直接返回这两个字符的大小差值
  2. 如果前k个字符相等(k为两个字符长度最小值),返回值两个字符串长度差值
    Java-String类_第9张图片

int compareToIgnoreCase(String str) 方法:与compareTo方式相同,但是忽略大小写比较
Java-String类_第10张图片


字符串查找
Java-String类_第11张图片
在这里插入图片描述

Java-String类_第12张图片


数值和字符串转化
Java-String类_第13张图片
Java-String类_第14张图片


大小写转换
Java-String类_第15张图片


字符串和数组的转换
Java-String类_第16张图片


格式化
Java-String类_第17张图片


字符串替换
使用一个指定的新的字符串替换掉已有的字符串数据

在这里插入图片描述
Java-String类_第18张图片
由于字符串是不可变对象, 替换不修改当前字符串, 而是产生一个新的字符串.


字符串拆分
可以将一个完整的字符串按照指定的分隔符划分为若干个子字符串。
在这里插入图片描述
Java-String类_第19张图片
Java-String类_第20张图片
字符"|“,”*“,”+“都得加上转义字符,前面加上 “\”
如果是 “” ,那么就得写成 “\\” (两个斜杠表示一个斜杆)
如果一个字符串中有多个分隔符,可以用”|"作为连字符
Java-String类_第21张图片
多次拆分
Java-String类_第22张图片


字符串截取
从一个完整的字符串之中截取出部分内容
在这里插入图片描述
Java-String类_第23张图片
索引从0开始
注意前闭后开区间的写法, substring(0, 5) 表示包含 0 号下标的字符, 不包含 5 号下标


字符串的不可变性
String是一种不可变对象. 字符串中的内容是不可改变
原因如下:
在这里插入图片描述


String类被final修饰,表明该类不能被继承
网上有些人说:字符串不可变是因为其内部保存字符的数组被final修饰了,因此不能改变。这种说法是错误的,
final修饰类表明该类不想被继承,final修饰引用类型表明该引用变量不能引用其他对象,但是其引用对象中的内
容是可以修改的。
Java-String类_第24张图片
Java-String类_第25张图片


字符串修改
注意:尽量避免直接对String类型对象进行修改,因为String类是不能修改的,所有的修改都会创建新对象,效率
非常低下。
Java-String类_第26张图片
Java-String类_第27张图片


Java-String类_第28张图片
Java-String类_第29张图片
Java-String类_第30张图片


Java-String类_第31张图片


Java-String类_第32张图片


Java-String类_第33张图片
Java-String类_第34张图片


Java-String类_第35张图片
Java-String类_第36张图片


Java-String类_第37张图片

Java-String类_第38张图片
!在这里插入图片描述


StringBuilder和StringBuffer
这两个类大部分功能是相同的,这里介绍 StringBuilder常用的一些方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Java-String类_第39张图片


Java-String类_第40张图片
String和StringBuilder最大的区别在于String的内容无法修改,而StringBuilder的内容可以修改。
String和StringBuilder类不能直接转换。如果要想互相转换,可以采用如下原则:Java-String类_第41张图片


String、StringBuffer、StringBuilder的区别
String的内容不可修改,StringBuffer与StringBuilder的内容可以修改.
StringBuffer与StringBuilder大部分功能是相似的
StringBuffer采用同步处理,属于线程安全操作;而StringBuilder未采用同步处理,属于线程不安全操


Java-String类_第42张图片
Java-String类_第43张图片


Java-String类_第44张图片
Java-String类_第45张图片


Java-String类_第46张图片

Java-String类_第47张图片

你可能感兴趣的:(Java,java)