1、Java中的字符串操作类String
-
String类如何创建对象,有哪些常用方法?
String类 --- java的JDK提供好的开发类。(java.lang包不用import)
String类 --- 使用final修饰符修饰的,说明它没有子类,不可被继承。
String类创建对象 --- 构造方法
1.String()创建一个空字符串对象
2.String(byte[] bytes,int offset,int length)字节数组转换成字符串
3.String(char[] value,int offset,int count)字符数组转换成字符串
4.String(String original)字符串常量创建字符串对象
String(StringBuffer buffer) --- 将StringBuffer转换成字符串
String(StringBuilder builder) --- 将StringBuilder转换成字符串
public class TestString{
public static void main(String[] args){
//1.String()创建一个空字符串对象
String str1 = new String();
//2.String(byte[] bytes,int offset,int length)字节数组转换成字符串
//byte[] bytes 字节数组
//int offset 数组的起始位置
//int length 数组的字节个数
byte[] bytearr = {97,98,99.100};
String str2 = new String(bytearr,0,bytearr.length);
System.out.println("str2==" + str2);
//3.String(char[] value,int offset,int count)字符数组转换成字符串
//char[] value 字符数组
//int offset 数组的起始位置
//int count 被转换的字符个数
char[] value = {'h','e','l','l','o'};
String str3 = new String(value,0,value.length);
System.out.println("str3=="+str3);
//4.String(String original)字符串常量创建字符串对象
String str4 = new String("hello,world");
//简化
String str5 = "hello,world";
}
}
-
String的常用方法:
-
char charAt(int index)---从原始字符串中得到指定位置的字符元素。
-
String concat(String str)---将指定的字符串连接到该字符串的末尾。
-
boolean contains(CharSequence s)---判断指定的字符串数据是否在原始字符串中存在。
-
boolean endsWith(String suffix)---测试此字符串是否以指定的后缀结尾。
-
boolean startsWith(String prefix)---测试此字符串是否以指定的前缀开头。
-
byte[] getBytes()---将字符串通过默认的字符编码转换成字节数组。
-
byte[] getBytes(String charsetName)---将字符串通过指定的字符编码转换成字节数组。
-
int indexOf(String str)---返回指定子字符串第一次出现在字符串内的索引位置。
-
lastIndexOf(String str)---返回指定子字符串最后一次出现的字符串中的索引。
-
boolean isEmpty()---判断字符串是否为空串,此方法为true时,字符串长度一定为0。
-
int length()---返回此字符串的长度。
-
boolean matches(String regex)---判断字符串数据是否符合正则表达式。
-
String replace(CharSequence old,CharSequence new)---将于字面目标序列匹配的字符串的每个子字符串替换为指定的字面替换序列。
-
String[] split(String regex)---通过指定的符号将字符串拆分成一个字符串数组。
-
String substring(int beginIndex)---截取从指定的开发位置到字符串结尾的一个字字符串。
-
String substring(int beginIndex,int endIndex)---截取从指定的开始位置到指定的结束位置的一个子字符串。
-
char[] toCharArray()---将此字符串转换为新的字符数组。
-
String toLowerCase() --- 大写转小写。
-
String toUpperCase()---小写转大写。
-
String trim()---去除原始字符串的两头空格。
-
-
什么是封装类
-
只有8种基本数据类型才有与之对应的封装类类型。
-
8种基本数据类型对应的复合数据类型(对象型)
-
8种基本数据类型对应的java类
基本数据类型(变量) 封装类类型(对象) byte(字节型) Byte(类) short(短整型) Short(类) int(整型) Integer(类) long(长整型) Long(类) float(单精度浮点型) Float(类) double(双精度浮点型) Double(类) char(字符型) Character(类) boolean(布尔型) Boolean(类) -
String 转换成基本类型
通过基本类型体用的封装类parseXXX(String str)
int parseInt(Stirng str)
double parseDouble(String str)
boolean parseBoolean(String str)
......
上面的这一组parseXXX(String str)方法只能被基本类型的封装类调用。
只有基本数据类型才有自己对应的封装类。
-
基本类型转换成String
将基本数据类型转换成String(static String valueOf(基本数据类型的数据值/变量))。
-
2、Java中的操作字符串类StringBuilder,StringBuffer
StringBuilder()---构造一个初始容量为16个字符的空StringBuilder对象。
StringBuilder(CharSequence seq)---通过其他的StringBuilder对象创建一个新的StringBuilder对象。
StringBuilder(int capacity)---构造一个由capacity参数指定的初始容量的空stringBuilder对象。
StringBuilder(String str)---构造一个初始化为指定字符串内容的StringBuilder对象。
-
StringBuilder类中的方法
-
StringBuilder append(Object o)将参数的字符串表示追加到序列中。
-
int capacity()返回当前容量。
-
char charAt(int index)返回char在指定索引在这个字符值。
-
StringBuilder delete(int start,int end)删除此序列的子字符串中的字符。
-
StringBuilder deleteCharAt(int index)删除char在这个序列中的指定位置。
-
int indexOf(String str)返回指定子字符串第一次出现的字符串内的索引。
-
int lastIndexOf(String str)返回指定子字符串在最右边出现的字符串内的索引。
-
StringBuilder insert(int offset,Object o)将参数的字符串表示插入到此序列中指定的位置。
-
int length()返回长度(字符串)。
-
StringBuilder reverse()导致该字符序列被序列的相反代替(取反)。
-
StringBuilder replace(int start,int end,String str)用指定的String中的字符替换此序列的子字符串中的String(什么地方开始,到什么地方结束,用什么替换)。
-
String substring(int start)返回一个新的String,其中包含此字符串序列中当前包含的字符的子序列。
-
String substring(int start,int end)返回一个新的String,其中包含此序列中当前包含的字符的子序列。
-
String toString()返回表示此序列中的数据的字符串。
-
-
StringBuffer与StringBuilder类似,请参考StringBuilder的构造方法和常用方法。
-
StringBuffer与StringBuilder区别?
StringBuffer StringBuilder String 可变的字符序列 可变的字符序列 不可变的字符系列 JDK1.0 JDK1.8 -- 保证线程同步(线程安全) 不保证线程同步(非线程安全) 非线程安全 访问速度相对较慢 访问速度相对较快 访问速度相对最慢 -
“==”与equals方法的区别?
== equals 比较运算符 java.lang.Object中的方法 基本类型:比较数据值 基本类型:不能被比较 复合类型:堆内存地址(引用地址) 复合类型:堆内存地址(引用地址) 如果被重写比较的是存储对象的内容