packagecom.zhou.day0822;//String类 publicclassDemo01{publicstaticvoidmain(String[] args){//只要是引用类型的数据 new出来的都在堆内存中 int a =10;//String类型可new可不new 分情况分析 //String s = new String(); //String s = "aa";// //1.字符串不变:字符串的值在创建后不能被更改。 String s ="狗子";//一个引用类型变量默认情况下打印的都是内存地址 System.out.println(s);
s = s +"bb";System.out.println(s);}}
上图一个创建了三个对象,但是s的地址从始至终都没有变。此即String类的值不可变性!
因为String对象是不可变的,所以它们可以被共享。
//1.字符串不变:字符串的值在创建后不能被更改。 String s ="狗子";//一个引用类型变量默认情况下打印的都是内存地址 System.out.println(s);//s = s + "bb"; System.out.println(s);//2.因为String对象是不可变的,所以它们可以被共享 String s1 ="狗子";System.out.println(s == s1);//true
public String concat(String str);:将指定的字符串连接到该字符串的末尾。
public char charAt(int index);:返回指定索引处的char值。
public int indexOf(String str);:返回指定子字符串第一次出现在该字符串内的索引。
public String substring(int beginIndex);:返回一个子字符串,从beginindex开始截取字符串到字符串结尾。
public String substring(int brginIndex,int endIndex);:返回一个子字符串,从beginindex到endindex截取字符串。含beginindex,不含endindex。(左闭右开)
方法演示,代码如下:
packagecom.zhou.day0822;publicclassDemo05{publicstaticvoidmain(String[] args){//1.获取字符串的字符个数 String s ="helloworldhello";System.out.println(s.length());//2.将指定的字符串连接到该字符串的末尾。
s = s.concat("666");System.out.println(s);//helloworldhello666 //3.返回指定索引处的char值 char c = s.charAt(5);System.out.println(c);//4.返回指定子字符串第一次出现在该字符串内的索引。 int i = s.indexOf("hello");System.out.println(i);//5.返回一个子字符串,从beginindex开始截取字符串到字符串结尾。 String str ="yedemingmingshu";System.out.println(str.substring(4));//6.返回一个子字符串,从beginindex到endindex截取字符串。含beginindex,不含endindex。(左闭右开) String str1 ="jishizaixiaodefanyenengyuanhang";System.out.println(str1.substring(2,7));}}
转换功能的方法
public char[] toCharArray();:将此字符串转换为新的字符数组。
public byte[] getBytes();:适用平台默认字符集将该String编码转换为新的字节数组。
public String replace(CharSequence target,CharSequence replacement);:将于target匹配的字符串使用replacement字符串替换。
方法演示,代码如下:
publicclassDemo06{publicstaticvoidmain(String[] args){//1.将此字符串转换为新的字符数组。 String str ="abcabc";char[] c = str.toCharArray();for(int i =0;i<c.length;i++){System.out.println(c[i]);}//2.适用平台默认字符集将该String编码转换为新的字节数组。 byte[] b = str.getBytes();for(int i =0;i<b.length;i++){System.out.println(b[i]);}//3.将于target匹配的字符串使用replacement字符串替换。 String s = str.replace("bc","aa");System.out.println(s);}}
分割功能的方法
public String[] split(String regex);:将此字符串按照给定的regex(规则)拆分为字符串数组。
方法演示,代码如下:
packagecom.zhou.day0822;publicclassDemo07{//1.分割功能的方法 publicstaticvoidmain(String[] args){String s ="aa-bb-cc-dd";String[] str = s.split("-");for(int i =0;i<str.length;i++){System.out.println(str[i]);}}}