java字符串的使用
-
List item
##定义字符串的两种方式:
1.用数组来定义*,
列如r [] a=new char[10],生成10个空间的内存,这是利用 动态生成空间,利用关键字new,来生成空间,如果不用new就不生成空间,只是简单的声明,只有使用了new能生成空间;另外也可以静态生成空间,这个的字符串的空间是固定的,不可以修改;数组的长度可以用数组名.length,length相当于数组中的一个变量,
2.可以用String来生成数组。它的定义也有两种方法,①用关键字new来生成新的空间来存放字符串,列如:
String s=new String(“字符串”);
下面是String的三种定义方式:
①.public String(),无参构造函数
②.public String(“字符串”),为该字符串变量生成空间,空间内存放的是字符,
③.静态生成空间,在定义时直接生成空间,用来存放字符串的地址,列如:String s=“123”;
实例如下:
运行结果:
String 中的和equals的区别:
这里有两个字符串s1和s2,
一般equals的范围大于等于;
s1s2,如果s1=”1234”,s2=“1234”,两个都是静态生成空间,他们指向的东西都是常量字符串,常量字符串存放的的空间是另外的,但是s1和s2指向的地方相同,所以他们的相等,返回true;指向不同时,返回false,因为都返回true,所以equals也是返回true。那么它最主要的区别在字符串的动态分配空间中,当s1=new String(“1234”),s2=new String(“2345”);此时无论是==还是equals,返回的都是false,如果是s1=new String(”1234"),s2=new String(“1234”);从这里就可以看出他的区别了,==时,两者的指向的地址不是在同一个地方中,那么就会返回false,而equals时,就会返回true,因为他们的内容相同。String的一个定性思维:在开辟空间时,一旦开辟了多少空间,那么以后就不能改变了,不论你怎么想,这个是一个必须区分的东西,
与String相似的 StringBuffer:这个也是字符串的意思,但是他开辟的字符串空间是可以改变的,也就是它的改变可以本质的在自身上,而String的改变不能在本身上。