Java和SQL取兩個(gè)字符間的值

Java

String str = "<WWW>abcdefg<WWW>";
String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<"));

StringUtils.substringBefore(“abcdec”, “c”); 結(jié)果是:ab 這里是以第一個(gè)”c”為標(biāo)準(zhǔn)。
StringUtils.substringBeforeLast(“abcdec”, “c”) 結(jié)果為:abcde這里是以倒數(shù)第一個(gè)”c”為標(biāo)準(zhǔn)。

SQL

對(duì)“*”及以前的字符進(jìn)行截取

在sql中可以使用下邊函數(shù)進(jìn)行截取特殊字符:
substr(str,instr(str,'*',1)+1)

其中,使用了substr函數(shù)和instr函數(shù)。
1、substr(string,start_position,[length])求子字符串,返回字符串

   第一個(gè)參數(shù)表示要截取的字符串,第二個(gè)表示起始位置,第三個(gè)表示截取的長(zhǎng)度,可省略。

2、instr(string,subString,position,ocurrence) 查找字符串的位置

   第一個(gè)參數(shù)表示源字符串,第二個(gè)是要查找的字符,第三個(gè)是要查找的開始位置,第四個(gè)是查找的字符是第幾個(gè)。

取一個(gè)字段中兩個(gè)字符之間信息

1、substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications))+1,1)
SQL報(bào)錯(cuò)
FUNCTION db.charindex does not exist

2、使用substring_index語法

用法規(guī)則:
substring_index(“待截取有用部分的字符串”,“截取數(shù)據(jù)依據(jù)的字符”,截取字符的位置N)

具體要截取第N個(gè)逗號(hào)前部分的字符,在字符串中以逗號(hào)為索引,獲取不同索引位的字符。
N可以為負(fù)數(shù),表示倒數(shù)第N個(gè)索引字符后面的字符串。(有負(fù)號(hào)的時(shí)候,可以將整個(gè)字符倒過來看,依舊是第N個(gè)字符前面的部分。)

具體例子:
首先假定需要截取的字符串為“192;168;8;203”,這里截取的依據(jù)是分號(hào):“;”

結(jié)果如下:

取第一個(gè)逗號(hào)前的字符串 :
SELECT SUBSTRING_INDEX(‘192;168;8;203’,’;’,1);
==>得到結(jié)果為: 192

取最后逗號(hào)后面的部分:
SELECT SUBSTRING_INDEX(‘192;168;8,203’,’;’,-1);
==>得到結(jié)果為: 203

取第2個(gè)逗號(hào)前那部分字符串里,最后逗號(hào)后面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8;203’,’;’,2),’;’,-1);
==>得到結(jié)果為: 168

取倒數(shù)第二個(gè)逗號(hào)后面部分字符串,再去這部分里第一個(gè)都號(hào)前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8,203’,’;’,-2),’;’,1);
==> 得到結(jié)果為:8

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容