String表示字符串类型,属于引用数据类型
,不属于基本数据类型。
字符串是常量,它们的值在创建之后不能更改
String声明为final的,不可以被继承
所有的 " " 都是String类的对象
String代表不可变的字符序列,简称:不可变性
体现:1.当对字符串重新赋值时,需要重新指定内存区域赋值,不能使用原有的value进行赋值。
2.当对现有的字符串进行连接操作时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。
3.当调用String的replace()方法修改指定字符或字符串时,也需要重新指定内存区域赋值,不能使用原有的value进行赋值。
常见String类的获取功能
//length()方法 获取字符串长度
String str="abcdef";
System.out.println(str.length());//输出结果:6
//charAt(int index)方法 传递一个下标参数,返回字符串对应位置的字符
String str1="abc";
System.out.println(str1.charAt(1));//输出结果:b
//indexOf()方法 传递某个字符,返回在字符串中的第一个位置
String str2="abcdcg";
System.out.println(str2.indexOf('a'));//输出结果:0
//subString(int start)方法 默认是取到字符串末尾
String str3="abcdef";
System.out.println(str3.substring(2));//输出结果:cdef
//subString(int start,int end)方法 注:范围左闭右开,不包含下标为end的那位
String str4="abcdefgh";
System.out.println(str4.substring(2,5));//输出结果:cde
构造方法
public String():-------空构造
public String(byte[] bytes):-------把字节数组转成字符串 public String(byte[] bytes,int index,int length):-------把字节数组的一部分转成字符串
public String(String original):-------把字符串常量值转成字符串
class StringTest{
public static void main(String[] args) {
//最常用的方式
String s1 = "我是吉吉国王";
System.out.println(s1);//我是吉吉国王
String s2 = new String("毛毛是我的子民");
System.out.println(s2);//毛毛是我的子民
char[] c = {'毛' , '毛', '我', '罩', '着'};
String s3 = new String(c);
System.out.println(s3);//毛毛我罩着
String s4 = new String(c, 2, 3);
System.out.println(s4);//我罩着
byte[] b = {65, 66 ,67, 68};
String s5 = new String(b);
System.out.println(s5);//ABCD
String s6 = new String(b, 1, 2);
System.out.println(s6);//BC
StringBuffer sb1 = new StringBuffer("吉吉国王威武!");
String s7 = new String(sb1);
System.out.println(s7);//吉吉国王威武!
StringBuilder sb2 = new StringBuilder("吉吉国王威武!");
String s8 = new String(sb2);
System.out.println(s8);//吉吉国王威武!
}
}