一.
现在我们学习一下,对象给我提供的能够对该对象进行操作的方法。
这些功能分为两种,一种是构造,一种是一般方法。
先介绍构造方法,演示构造器必须查String类的说明,构造方法摘要,
上图中的写法没什么意思,(两者是一样,虽然地址不一样,但是内容是一样的),都是在构造空的字符串。
但是不要以为String s=null,也是等效的。前面两个都是对象,但是null是常量值为空。
真正操作字符串对象的时候,根本不需要new,直接用""创建即可,最为简单和方便,而且创建了还能被共享。
但是也不能说全部用""双引号创建字符串对象,我们说一些特殊的。在众多String类的构造函数方法中,很多方法并没有什么用。
上图中的就是一个特殊的,可以往里面传递数组,将数组变为一个字符串。
对数组进行遍历,拿它每一个元素和我的字符串进行连接,这样是可行的,但是很麻烦。String类中已经提供了相关的方法。
数组里面的数字,到字符串里面就变成了字符。如果里面是数字的话,它会自动进行阿斯科码表的查询。这是将一个字节数组变成字符串。这是举的一个例子,真正开发的时候它有自己的应用。因为字节是最小单位,我们要把很多最小单位组合而成一个字符串来给大家展示出来,或者要把这个字符串变成最小单位存储起来。
(能够将字节变成字符串)
另外一个方法很常用,创建一个字符数组。字符本身就是字符串里的一个单元。字符串是由字符组成的,
从结果看,数组变成字符串操作也方便一些。
对于字节数组或者字符数组,它们都有一个热点,它们里面都可以有一个offset的偏移量和length的长度。
我能把一个数组变成字符串,也能把数组的一部分变成字符串。这就是String的构造函数的好处,让数组变成字符串。这数组只有两种,一个是byte,另一个是char。下图的int和byte差不多
上图中的codePoints指的是,如果真的往里面int数组里输入的是97,98,99的话,它变完字符串是小写的abc,一般不用这个方法。
图中的offset是指起点,count是指取几个。
结果为s=apq
意思就是从这个数组的1角标开始取,连取三个。
package stringd.emo;
public class StringConstructorDemo {
public static void main(String[] args) {
stringConstructorDemo2();
}
public static void stringConstructorDemo2() {
//字符变成字符串
char data[] = {'a','c','d','f'};
String s1 = new String(data, 0, 3);//从零角标开始,数三个
System.out.println(s1);//acd
}
public static void stringConstructorDemo() {
String s = new String();//等效于string s="",不等效于string s = null.
byte[] arr = {97,66,67,68};
String s1 = new String(arr);
System.out.println(s1);//aBCD
}
}