Java String str = "abcdefg"; String result = str.substring(str.indexOf(" ")+1, str.lastIndexOf("得到結果為: 192 取最後逗號後面的部分: SELECT SUBSTRING_INDEX(‘192;168 ...
Java
String str = "
String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<"));
StringUtils.substringBefore(“abcdec”, “c”); 結果是:ab 這裡是以第一個”c”為標準。
StringUtils.substringBeforeLast(“abcdec”, “c”) 結果為:abcde這裡是以倒數第一個”c”為標準。
SQL
對“*”及以前的字元進行截取
在sql中可以使用下邊函數進行截取特殊字元:
substr(str,instr(str,'*',1)+1)
其中,使用了substr函數和instr函數。
1、substr(string,start_position,[length])求子字元串,返回字元串
第一個參數表示要截取的字元串,第二個表示起始位置,第三個表示截取的長度,可省略。
2、instr(string,subString,position,ocurrence) 查找字元串的位置
第一個參數表示源字元串,第二個是要查找的字元,第三個是要查找的開始位置,第四個是查找的字元是第幾個。
取一個欄位中兩個字元之間信息
1、substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications))+1,1)
SQL報錯
FUNCTION db.charindex does not exist
2、使用substring_index語法
用法規則:
substring_index(“待截取有用部分的字元串”,“截取數據依據的字元”,截取字元的位置N)
具體要截取第N個逗號前部分的字元,在字元串中以逗號為索引,獲取不同索引位的字元。
N可以為負數,表示倒數第N個索引字元後面的字元串。(有負號的時候,可以將整個字元倒過來看,依舊是第N個字元前面的部分。)
具體例子:
首先假定需要截取的字元串為“192;168;8;203”,這裡截取的依據是分號:“;”
結果如下:
取第一個逗號前的字元串 :
SELECT SUBSTRING_INDEX(‘192;168;8;203’,’;’,1);
==>得到結果為: 192
取最後逗號後面的部分:
SELECT SUBSTRING_INDEX(‘192;168;8,203’,’;’,-1);
==>得到結果為: 203
取第2個逗號前那部分字元串里,最後逗號後面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8;203’,’;’,2),’;’,-1);
==>得到結果為: 168
取倒數第二個逗號後面部分字元串,再去這部分里第一個都號前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8,203’,’;’,-2),’;’,1);
==> 得到結果為:8