- String类中有两个substring函数
public String substring(int beginIndex) {}
public String substring(int beginIndex, int endIndex) {}
先看public String substring(int beginIndex) {}
,这个函数的作用,可以简单理解为,去除字符串前面的几个字符,测试如下。
String h = "hello world";
String temp = "";
temp = h.substring(0);
System.out.println("substring(0): " + temp);
temp = h.substring(1);
System.out.println("substring(1): " + temp);
temp = h.substring(2);
System.out.println("substring(2): " + temp);
运行结果如下:
值得注意的是:substring(0)并不是去掉第一个元素,而是什么都没有做。和substring(0,h.length())效果是一样的。substring(1)才去掉了第一个字母。
再来看public String substring(int beginIndex, int endIndex){}
,substring(begin,end)函数。
在endIndex为str.length()
时,去除的字符数就是是beginIndex, 最终结果长度=end-begin。
测试代码及运行结果如下。
temp = h.substring(0, 1);
System.out.println("substring(0,1): " + temp);
temp = h.substring(0, 2);
System.out.println("substring(0,2): " + temp);
temp = h.substring(0, 3);
System.out.println("substring(0,3): " + temp);
temp = h.substring(0, h.length());
System.out.println("\nsubstring(0,h.length()): " + temp);
temp = h.substring(1, h.length());
System.out.println("substring(1,h.length()): " + temp);
temp = h.substring(2, h.length());
System.out.println("substring(2,h.length()): " + temp);
所以substring(begin,end)的含义,其实是保留长度为end-begin的字符串。