Java和SQL實現(xiàn)取兩個字符間的值
Java
String str = "abcdefg"; String result = str.substring(str.indexOf(">")+1, str.lastIndexOf("<"));
StringUtils.substringBefore(“abcdec”, “c”);
結(jié)果是:ab 這里是以第一個”c”為標(biāo)準(zhǔn)。
StringUtils.substringBeforeLast(“abcdec”, “c”)
結(jié)果為:abcde這里是以倒數(shù)第一個”c”為標(biāo)準(zhǔn)。
SQL
對“*”及以前的字符進(jìn)行截取
在sql中可以使用下邊函數(shù)進(jìn)行截取特殊字符:
substr(str,instr(str,'*',1)+1)
其中,使用了substr函數(shù)和instr函數(shù)。
1、substr(string,start_position,[length])求子字符串,返回字符串
第一個參數(shù)表示要截取的字符串,第二個表示起始位置,第三個表示截取的長度,可省略。
2、instr(string,subString,position,ocurrence) 查找字符串的位置
第一個參數(shù)表示源字符串,第二個是要查找的字符,第三個是要查找的開始位置,第四個是查找的字符是第幾個。
取一個字段中兩個字符之間信息
1、如下
substring(a.specifications,charindex(':',a.specifications,charindex(';',specifications))+1,1)
SQL報錯
FUNCTION db.charindex does not exist
2、使用substring_index語法
用法規(guī)則:
substring_index(“待截取有用部分的字符串”,“截取數(shù)據(jù)依據(jù)的字符”,截取字符的位置N)
具體要截取第N個逗號前部分的字符,在字符串中以逗號為索引,獲取不同索引位的字符。
N可以為負(fù)數(shù),表示倒數(shù)第N個索引字符后面的字符串。(有負(fù)號的時候,可以將整個字符倒過來看,依舊是第N個字符前面的部分。)
具體例子:
首先假定需要截取的字符串為“192;168;8;203”,這里截取的依據(jù)是分號:“;”
結(jié)果如下:
取第一個逗號前的字符串 :
SELECT SUBSTRING_INDEX(‘192;168;8;203',';',1); ==>得到結(jié)果為: 192
取最后逗號后面的部分:
SELECT SUBSTRING_INDEX(‘192;168;8,203',';',-1); ==>得到結(jié)果為: 203
取第2個逗號前那部分字符串里,最后逗號后面的部分
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8;203',';',2),';',-1); ==>得到結(jié)果為: 168
取倒數(shù)第二個逗號后面部分字符串,再去這部分里第一個都號前的部分:
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(‘192;168;8,203',';',-2),';',1); ==> 得到結(jié)果為:8
java 兩個字符串取交集
兩個字符串取交集
public static void checkCommom(String str1, String str2) { HashSet<String> result = new HashSet<String>(); int length1 = str1.length(); int length2 = str2.length(); for (int i = 0; i < length1; i++) { for (int j = 0; j < length2; j++) { String char1 = str1.charAt(i) + ""; String char2 = str2.charAt(j) + ""; if (char1.equals(char2)) { result.add(char1); } } } Iterator<String> it = result.iterator(); while (it.hasNext()) { String value = it.next(); System.out.print(value); } }
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對路徑)問題解析
這篇文章主要介紹了Java,JSP,Servlet獲取當(dāng)前工程路徑(絕對路徑)問題解析,需要的朋友可以參考下。2017-09-09詳解大數(shù)據(jù)處理引擎Flink內(nèi)存管理
Flink是jvm之上的大數(shù)據(jù)處理引擎,jvm存在java對象存儲密度低、full gc時消耗性能,gc存在stw的問題,同時omm時會影響穩(wěn)定性。針對頻繁序列化和反序列化問題flink使用堆內(nèi)堆外內(nèi)存可以直接在一些場景下操作二進(jìn)制數(shù)據(jù),減少序列化反序列化消耗。本文帶你詳細(xì)理解其原理。2021-05-05Java雜談之類和對象 封裝 構(gòu)造方法以及代碼塊詳解
在現(xiàn)實世界中,真實存在的東西,比如吉普車,卡丁車,貨車。我們在認(rèn)識它的時候就會在腦海中將它抽象為一種類別叫做車。 好了,那再計算機(jī)世界中,它同樣的也會這樣做2021-09-09Java中JDBC事務(wù)與JTA分布式事務(wù)總結(jié)與區(qū)別
Java事務(wù)的類型有三種:JDBC事務(wù)、JTA(Java Transaction API)事務(wù)、容器事務(wù),本文詳細(xì)介紹了JDBC事務(wù)與JTA分布式事務(wù),有需要的可以了解一下。2016-11-11SpringMVC+MyBatis 事務(wù)管理(實例)
本文先分析編程式注解事務(wù)和基于注解的聲明式事務(wù)。對SpringMVC+MyBatis 事務(wù)管理的相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2017-08-08springboot+webmagic實現(xiàn)java爬蟲jdbc及mysql的方法
今天小編就為大家分享一篇springboot+webmagic實現(xiàn)java爬蟲jdbc及mysql的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08