*String 字符串类
说明:字符串是常量,一旦创建了就不能修饰了,字符串的内容一旦发生了变化就会创建新对象
字符串的内容不适宜频繁修改,因为一旦修改就会创建新的对象。
如果非要修改字符串的内容建议使用字符串缓冲类;
*1. 字符串变量定义方式:
* 方式一:String var = "字符串";
* 方式二:String var = new String("字符串“);
* 另种方式的不同:
* 方式一:首先jvm检查内存常量池中是否有要创建的字符串,如果没有就在内存常量池中创建该字符串,并且返回该字符串的地址给变量;
* 如果jvm检查内存常量池中有该字符串,那么久不会再创建字符串,而是直接返回该字符串的地址给变量;
* 方式二:首先jvm会检查内存常量池中是否有要创建的字符串,如果有那么就在堆区创建一个字符串对象并返回地址给变量;
* 如果Jvm检查内存常量池中没有要创建的字符串,那么Jvm就会现在内存常量池中先创建该字符串,然后再再堆区创建该字符串并返回地址给变量:
* 说明:字符串常量池位于方法区中;
*2. 常用方法:
*String重写了Object中的equals的方法,比较的是字符的内容是否一致,而"=="比较的是引用类型的地址是否相等;
* (1)构造方法;
* String()
* String(byte[] vlaues) 接收byte的数组,转换为字符串
* String(byte[] valurs,offset,num) 将多少个数值转换为字符串
* String(char[] values) 将字符数组合并成字符串
* String(char[] values,offset,num)将offset个字符转换成num个字符串
* String(int[] values) 同上面
* String(int[] values offset, num) 同上面
*
* 说明:使用String的构造方法,使用字符数组和字节数组都可以构建字符串对象;
*
* (2)获取方法
* int length() 获取字符串的长度(字符个数)
* char charAt(index) 根据索引值获取字符,注意角标越界
* int indexOf(String str) 获取子串在字符串中第一次出现的位置,如果没有返回-1
* int lastIndexOf(String str)查找子串在字符串中最后一次出现的位置,没有返回-1;
*
* (3)判断的方法
* boolean endsWIdth(String str) 判断是否以指定子串结束;
* boolean startWith(String str) 判断是否以指定子串开始;
* boolean isEmpty() 判断是为空长度为0;
* boolean contains(chaeSequence) 是否包含指定的字符序列;
* boolean equals(String str) 判断两个字符串的内容是否相等,区分大小写;
* boolean esuqlsIgnorceCase(String str) 忽略大小写比较内容是否一致;
*
* (4)转换方法
* char[] toCHarArray() 将字符串转换成字符数组
* byte[] getBytes() 将字符串转换成字符对应的ASSIC码值;
*
* 说明:字符串、字节数组和字符数组之间可以相互转换
*
*(5)其他方法
* String replace(oldCHar, newChar); 替换,全部替换
* String[] split(separator) 使用分隔符切割
* String[] split(separator,int limit) 分割成limit段
* String substring(int startIndex) 从startIndex开始截取
* String substring(int startIndex, int endIndex) 从startIndex截取到endIndex的字符串
* String toUppercase() 转换为大写字母
* String toLowercase() 转换为小写字母
* String trim() 清除字符串两边的空格