首頁 > 軟體

Java和SQL實現取兩個字元間的值

2021-06-08 13:00:35

Java

String str = "abcdefg";
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

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);
        }
    }

以上為個人經驗,希望能給大家一個參考,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com