重新出发000005-阅读文章"String是一个很普通的类"。
2018-06-04 11:00:17
imadiaos
package review.base.Java那些事儿;
public class 五_String是一个很普通的类 {
public static void main(String[] args){
TestSourceCodeString tscs = new TestSourceCodeString();
tscs.printString();
}
}
class TestSourceCodeString{
/**
* 参考文章地址:https://zhuanlan.zhihu.com/p/27626724
*/
public static final String imdoor = "我是源码入口";
public void printString(){
String str1 = new String("abc");
String str2 = new String("abc");
StringBuffer sbf = new StringBuffer("a");
sbf.append("b");
sbf.append("c");
System.out.println(str1.isEmpty());
System.out.println(str1.length());
System.out.println(str1.charAt(1));
System.out.println(str1.substring(2,3));
System.out.println(str1.equals(str2));
System.out.println("判断是否为空:"+str1.isEmpty()); // 通过判断底层char数组长度是否为0判断
System.out.println("字符串长度:"+str1.length()); // 直接返回底层char数组的length属性
System.out.println("指定位置的字符:"+str1.charAt(1)); // 返回返回字符串
System.out.println("截取字符串:"+str1.substring(0,1)); // 返回制定位置的字符串,截取开始位置和结束位置。如果开始位置是0并且结束位置是字符串长度,则直接返回当前对象本身。否则根据传入的范围构建一个新的String对象并返回。
System.out.println("判断相等:"+str1.equals(str2)); // == && 类型一样 && char数组长度一样 && char数组每一个元素都一样
System.out.println("变成数组:"+str1.toCharArray()); // 通过System.arraycopy赋值了一个等长的数组并返回。数组的长度来自原始的char数组的length。
System.out.println("返回制定字符(串)在字符串中首次出现的位置:"+"abcdabcdabcd".indexOf("a")); // 返回指定的字符(串)在此字符串中第一次出现的索引。
System.out.println("返回制定字符(串)在字符串中首次出现的位置,指定开始索引。:"+"abcdabcdabcd".indexOf("a",5)); // 返回此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。这里需要注意的是,返回的是原始字符串相关的索引,而不是加了偏移量以后的。 例如当前写法的最终输出为8而不是3.
System.out.println("返回制定字符(串)在字符串中最后一次出现的位置:"+"abcdabcdabcd".lastIndexOf("abc")); // 返回指定的字符(串)在此字符串中最后一次出现的索引。
}
}