Java基础——String类

一、String的基本概念

1、String是一组字符序列,由于其内部是用字符数组实现的,所以他是一个不可变的串。即改变它的值地址也会随之改变。
2、创建String对象的方式
String s = new String();
String s = new String(“11”);
String s = “111”;
String s = new String(byte[] bytes)//通过字节数组创建字符串,返回编码后的字符串
String s = new String(byte[] bytes,int offset,int length);//同上,从offset开始,构造的长度,注意数组越界会报错 。
str = new String(b,1,2,“GBK”); //同上用指定的字符集解码
String(byte[] bytes, int offset, int length, Charset charset)//同上
String(byte[] bytes, String charsetName)//可以指定字符集
String(byte[] bytes, Charset charset)
String(char[] value)//创建给定字符的字符串
String(char[] value,int offset,int length)//创建给定字符的字符串,开始位置,长度
str = new String(int[],1,2);//按照给定Unicode代码点创建数组1表示开始位置,2长度
str = new
3、注意
比较两个字符串是否相等时,最好用equals方法比较,例如:
String str1=new String"abc";
String str2=new String"abc";
str1str2;的结果为false‘
str1.equals(str2);的结果为true。
”比较的是地址,new出来的对象地址肯定是不一样的,我们常用“”比较基本数据类型,是因为基本数据类型定义在常量池里面。相同的常量存储的地址是相同的,所以“”比较基本数据类型不会出错。比较引用类型时常用equals方法,equals方法比较的是值,所以字符串一般用equals比较。

二、创建String对象跟直接给值的区别:

Java基础——String类

三、String类型的对象是不变的串的原因: Java基础——String类

四、String字符串对象的常用方法:

charAt(int index)//返回指定索引的值、
codePointAt(int index)//返回索引的值的代码点
codePointBefore(int index)// 返回索引前一个索引的值的代码点
codePointAfter(int index)//同上
compereTo(String anotherString)//返回0等于,返回负数的数就小于,返回正数大于
compereToIgnoreCase//同上,忽略大小写
concat(String)//拼接字符串
replace(“”,””);//用右边的替换左边
split(String regex);//正则匹配并且拆分
substring(int Index)
substring(int Index,int Index);//从左边索引到右边索引拆分,
toCharArray();//把字符串变成字符数组
toLowerCase();//都转换成小写
toUpperCase();//都转换成大写
静态的valueOf(类型 变量名);//把指定类型转换成字符串,引用类型转换的是地址
可用于创建对象