String是Java相对基础的类,所有开发人员都经常接触。 另外,String也是面试中经常报考的知识点。 String有很多方法。 有常用的方法,也有不太常用的方法。 今天介绍的subString是一种比较常用的方法,在subString周围也存在很多问题。
substring(intbeginindex,int endIndex )方法的实现因JDK版本而异。 了解他们的不同有助于你更好地使用他。 为简便起见,以下用substring(intbeginindex,int endIndex )方法表示。
substring ()角色
substring(intbeginindex,int endIndex )方法剪切字符串,并返回[beginIndex,endIndex-1]范围内的内容。
String x='abcdef ';
x=x.substring (1,3 );
系统. out.println (x;
输出内容:
bc
调用substring ()时发生了什么?
您可能知道,x是不变的,所以如果使用x.substring (1,3 )为x赋值,它将指向一个全新的字符串:
但是,这张图并不完全准确地表示堆中发生的事情。 因为jdk6和jdk7在调用substring时发生的情况不同。
JDK 6订阅
String是通过字符数组实现的。 在jdk 6中,字符串类包含三个成员变量: char value[]、int offset和int count。 他们分别包含在真正的字符数组、数组的第一个位置索引和字符串中