字符串
1.字符串定义
字符串: 简单理解为:由一个签字将若干个字符串起来的串儿,叫字符串 官方理解: 字符串是由多个字符组成的一串数据(字符序列) 字符串可以看成是字符数组
通过观察API发现:
1、String代表的是字符串。属于java.lang包下,所以在使用的时候不需要导包
2、String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。(对象)
3、字符串不变; 它们的值在创建后不能被更改。
字符串是常量,一旦被赋值,字符串本身不能被修改。
2.String的构造方法(注意String构造方法是将字符或字节数组转换为字符串,而用String的valueOf方法是将数组转化为字符串,其中包括字符数组)
(1).public String()
public class StringDemo1 {
public static void main(String[] args) {
String s=new String("奥里给");
System.out.println(s.toString());//String类中重
//写toString()方法
System.out.println(s.length());//如果字符串中没有
//字符,返回0
(2).public String(byte[] bytes)根据一个字节数组创建出一个字符串对象
byte[] bytes={
95,97,98,99,100};
String s1=new String(bytes);
System.out.println("bytes字节数组对应的字符串为:s1
:"+s1);//注意这里对应的是Ascll码对应的字符串 结果:_abcd
System.out.println(s1.length());
(3).public String(byte[] bytes,int offset,int length)将字节数组中的一部分转化成字符串
byte[] bytes1={
'd','a','d','r','q','y','q'};
String s2=new String(bytes1,2,3);
System.out.println("bytes1字节数组的部分对应的字符
串为:"+s2);//结果:drq
4.public String(char[] value) 将字符数组转成一个字符串
char[] chars=new char[]{
's','e','r','q',};
String s3=new String(chars);
System.out.println("chars字符数组对应的字符串为:"+
s3);//chars字符数组对应的字符串为:serq
5.public String(char[] value,int index,int count)将字符数组的一部分转化为字符串
char[] chars1={
's','e','r','q','a','q','o','p'};
String s4=new String(chars1,2,5);
System.out.println("chars字符数组的部分对应的字符串
为:"+s4);//chars字符数组的部分对应的字符串为:rqaqo
6.public String(String original)
初始化新创建的String对象,使其表示与参数相同的字符序列;
// 换句话说,新创建的字符串是参数字符串的副本。
String s5="大家好";
String s6=new String(s5);
System.out.println(s6);
System.out.println(s6.length());
3. 字符串是常量,它的值在创建后不能被改变
String s = "hello";
s += "world";
请问s的值是什么?
内存图辅助理解:
public class StringDemo2 {
public static void main(String[] args) {
String s="Hello";
s+="world";
System.out.println("拼接后的字符串为:"+s);
}
}
4. String s = new String(“hello”)和String s = “hello”;的区别?
字符串比较之看程序写结果
字符串拼接之看程序写结果
注意事项:
1、==比较引用数据类型的时候,比较的时候地址值
2、String类中使用equals方法比较的是字符串的值,因为String类中重写了equals方法
字符串new与不new的区别
举例:1.
public class StringDemo3 {
public static void main