JAVA
/**
* @Description:返回一个新的字符串,它是此字符串的一个子字符串。
* 该子字符串从指定索引处的字符开始,直到此字符串末尾。
* @param beginIndex - 起始索引(包括)。
* @return 返回截取的子字符串
* @exception IndexOutOfBoundsException - 如果 beginIndex 为负或大于此 String 对象的长度。
*/
public String substring(int beginIndex);
"abcde".substring(1);
"abcde".substring(-1);
"abcde".substring(6);
/**
* @Description:返回一个新字符串,它是此字符串的一个子字符串。
* 该子字符串从指定的 beginIndex 处开始,直到索引 endIndex - 1 处的字符。
* 因此,该子字符串的长度为 endIndex-beginIndex。
* @param beginIndex - 起始索引(包括)。
* @param endIndex - 结束索引(不包括)。
* @return 返回截取的子字符串
* @exception IndexOutOfBoundsException - 如果 beginIndex 为负,
* 或 endIndex 大于此 String 对象的长度,或 beginIndex 大于 endIndex。
*/
public String substring(int beginIndex, int endIndex);
"abcde".substring(0,2);
"abcde".substring(0,5);
"abcde".substring(-1,2);
"abcde".substring(0,6);
"abcde".substring(4,1);
/**
* @Description:返回指定子字符串在此字符串中第一次出现处的索引
* @param str - 任意字符串。
* @return 如果字符串参数作为一个子字符串在此对象中出现,则返回第一个这种子字符串的第一个字符的索引;
* 如果它不作为一个子字符串出现,则返回 -1。
*/
public abstract int indexOf(String str);
"abcde".indexOf("bc");
"abcde".indexOf("xy");
"abcde".indexOf("a");
"abcde".indexOf("");
/**
* @Description:返回指定子字符串在此字符串中最右边出现处的索引。
* 将最右边的空字符串 "" 视为出现在索引值 this.length() 处。
* @param str - 要搜索的子字符串。
* @return 如果字符串参数作为一个子字符串在此对象中出现一次或多次,则返回最后一个这种子字符串的第一个字符。
* 如果它不作为一个子字符串出现,则返回 -1。
*/
public abstract int lastIndexOf(String str);
"abcdeb".lastIndexOf("b");
"abcde".lastIndexOf("xy");
"abcde".lastIndexOf("");
/**
* @Description:测试此字符串是否以指定的前缀开始。
* @param prefix - 前缀。
* @return 如果参数表示的字符序列是此字符串表示的字符序列的前缀,则返回 true;否则返回 false。
* 还要注意,如果参数是空字符串,或者等于此 String 对象(用 equals(Object) 方法确定),则返回 true。
*/
public boolean startsWith(String prefix);
"abcde".startsWith("a");
"abcde".startsWith("");
"abcde".startsWith("b");
/**
* @Description:测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
* @param prefix - 前缀。
* @param toffset - 在此字符串中开始查找的位置。
* @return 如果参数表示的字符序列是此对象从索引 toffset 处开始的子字符串前缀,则返回 true;否则返回 false。
* 如果 toffset 为负或大于此 String 对象的长度,则结果为 false;否则结果与以下表达式的结果相同:
* this.substring(toffset).startsWith(prefix)
*/
public boolean startsWith(String prefix, int toffset);
"abcde".startsWith("b", 1);
"abcde".startsWith("b", 0);
"abcde".startsWith("b", 6);
"abcde".startsWith("b", -1);
JavaScript
stringObject.substring(startIndex [,endIndex]);
"abcde".substring(1)
"abcde".substring(5)
"abcde".substring(-1)
"abcde".str.substring(-9,2)
"abcde".substring(0,9)
"abcde".substring(-1,9)
stringObject.substr(startIndex [,length])
"abcde".substr(1)
"abcde".substr(-1)
"abcde".substr(-9)
"abcde".substr(-9,3)
"abcde".substr(1, -1)
"abcde".substr(-5,3)
Oracle
substr(string, position [,length]);
SELECT SUBSTR('abcde', 1) FROM DUAL;
SELECT SUBSTR('abcde', 0) FROM DUAL;
SELECT SUBSTR('abcde', -2) FROM DUAL;
SELECT SUBSTR('abcde', 6) FROM DUAL;
SELECT SUBSTR('abcde', 4, 4) FROM DUAL;
SELECT SUBSTR('abcde', -4, 3) FROM DUAL;
SELECT SUBSTR('abcde', 4, -1) FROM DUAL;
instr(string, substring [,position [,occurrence]]);
SELECT INSTR('abcde', 'a') FROM DUAL;
SELECT INSTR('abcde', 'f') FROM DUAL;
SELECT INSTR('abcde', 'a', 1) FROM DUAL;
SELECT INSTR('abcde', 'a', 2) FROM DUAL;
SELECT INSTR('abcdea', 'a', 2, 1) FROM DUAL;
SELECT INSTR('abcde', 'a', -3, 1) FROM DUAL;
SELECT INSTR('abcde', 'e', -3, 1) FROM DUAL;
SELECT SUBSTR('2018-05-10', 1, INSTR('2018-05-10', '-')-1) FROM DUAL;
SELECT SUBSTR('2018-05-10', INSTR('2018-05-10', '-')+1,
INSTR('2018-05-10', '-', 1, 2) - INSTR('2018-05-10', '-')-1) FROM DUAL;
SELECT SUBSTR('2018-05-10', INSTR('2018-05-10', '-', 1, 2)+1) FROM DUAL;