一,构造方法
总结:这里的方法我们可以看到,String 类型的构造方法可以让一个byte数组,或者一个char 数组转化为一个字符串,重点介绍String构造方法关于byte数组或者char数组转换为String字符串的构造方法
1.1 byte[] 数组转换为字符串
介绍:这个方法可以有4个参数,第一个就传入的数组名,第二个就是可以指定下标,从这个下标开始转为字符串,第三个就是长度,从转换下标开始转换为字符串的长度,第四个就是指定用什么编码来转化,
转换下标:如果不指定就默认转换整个数组
长度:是基于转换下标存在的基础上来规定长度的,没有下标就不谈长度,
指定编码:这里填写的时候需要一个Charset.forName();的方法,来填入,下面给出例子
byte[] bytes = {65, 66, 67, 68};
String s = new String(bytes, 0, 2, Charset.defaultCharset());
String s1=new String(bytes,Charset.forName("UTF-8"));
System.out.println(s);
介绍:第一个是用的默认编码,就是当前JVM设置的编码格式,我们一般都是UTF-8
第二个我们用的是GBK,编码,通过forName方法来使用
.
.
但是只规定了编码,没有规定解码,通常会出错,会出现乱码的情况,所以最后一项我们一般不填写编码的类型,而默认使用默认编码
如果你设置得编码和解码不同,一般情况下运行结果的中文会出现乱码
同理,我们可以使用char类型来转换字符串,和byte类型的数组的操作是一样的
二,常用的方法
2.1 charAt 方法 ——返回一个指定处索引的值—— (实例方法)
示例:
String s1="123456789";
System.out.println( s1.charAt(2));
解释:该方法返回一个char类型的值,charAt方法里面填写的索引是从0开始的,在这个例子中字符串1的下标是0
2.2 codePointAt ——返回该索引下的值的Unicode的数字表示——(实例方法)
String s1="中国123456789";
System.out.println(s1.codePointAt(1));
结果:22269
同理:有
解释:返回该索引前面的的的点数
2.3 codePointCount ——返回索引开始到结束前面一个索引的代码点,——(实例方法)
String s1="中国123456789";
System.out.println(s1.codePointCount(0,s1.length()));
结果是 11,根直接用s1.length(),大多数情况下在效果是一样的
但是呢,这里有很大的区别的,这里看我的另一个文章
有专门的介绍:——
https://blog.csdn.net/weixin_43590500/article/details/117158777
2.4 contains ——判断字符是否有该字符序列——(实例)
String str1 = "\uD835\uDD6BHello";
System.out.println( str1.contains("l1"));
解释:方法里面的可以是一个字符,可以是一个字符串,判断结果区分大小写
返回结果是Boolean类型
2.5 concat 方法 将一个字符串连到一个字符串后面——(实例)
String ss="我是";
String ss1="中国人";
System.out.println(ss.concat(ss1));
结果:我是中国人
2.6 compareTo 方法——按照从左到右的顺序比较字符串的大小
String ss3="abc";
String ss4="acasfadgasdf";
System.out.println(ss3.compareTo(ss4));
结果:-1
解释:比括号里的字符串大返回 1小返回-1 等于返回0
从左到右开始比较,当出现一个字符不相等的时候就比较不相等的字符,这里a比较a 相等
b比较c不相等,c的Unicode的编码对应的数字比b大,返回 -1 比较结束
同理:有不区分大小写比较字符串的方法