第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

兩次檢查一個(gè)字符串是否包含另一個(gè)字符串

兩次檢查一個(gè)字符串是否包含另一個(gè)字符串

侃侃無極 2023-05-10 14:01:01
我有一個(gè)遍歷映射列表的 for 循環(huán),現(xiàn)在我想檢查映射列表的每個(gè)條目是否多次包含某個(gè)字符串,然后刪除除第一個(gè)出現(xiàn)的字符串之外的所有字符串,但我不知道該怎么做.for (Map<String, String> entry : mapList) {    String line = "";    for (String key : entry.keySet()) {        if (StringUtils.containsAny(key, "5799"){            line += entry.get(key) + "|";        }        list1.add(line);    }}我感謝每一個(gè)想法。
查看完整描述

3 回答

?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

根據(jù)您的評(píng)論,我假設(shè)您的要求如下:

  • 您的字符串包含多個(gè)由豎線字符分隔的部分|,例如"a|e|b|c|a|c|a|d"

  • 你想刪除所有重復(fù)的字符串,同時(shí)保留元素的順序,例如你想要"a|e|b|c|d"

為此,您可以在管道處拆分字符串,將元素收集到 a 中LinkedHashSet,然后使用管道重新加入元素。

使用 Java 8 的示例:

//The pipe needs to be escaped because split() interprets the input as a regex

Set<String> elements = new LinkedHashSet<>( Arrays.asList( input.split( "\\|" ) ) );

//rejoin using the pipe

String output = elements.stream().collect( Collectors.joining( "|" ) );


查看完整回答
反對(duì) 回復(fù) 2023-05-10
?
滄海一幻覺

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超5個(gè)贊

要查看是否至少key包含一個(gè)字符串兩次,并刪除第二次出現(xiàn),請(qǐng)使用兩次,第二次調(diào)用在第一次出現(xiàn)后開始搜索:sindexOf


static String removeSecond(String key, String s) {

    int idxFirst = key.indexOf(s);

    if (idxFirst != -1) {

        int idxSecond = key.indexOf(s, idxFirst + s.length());

        if (idxSecond != -1) {

            return key.substring(0, idxSecond) +

                   key.substring(idxSecond + s.length());

        }

    }

    return key; // Nothing to remove

}

測(cè)試


System.out.println(removeSecond("mississippi", "ss")); // prints: missiippi

System.out.println(removeSecond("mississippi", "i"));  // prints: missssippi

System.out.println(removeSecond("mississippi", "pp")); // prints: mississippi

更新


如果您想刪除所有重復(fù)項(xiàng),即只保留第一次出現(xiàn)的項(xiàng),請(qǐng)繼續(xù)搜索。為了獲得構(gòu)建新字符串的最佳性能,請(qǐng)使用StringBuilder.


static String removeDuplicates(String key, String s) {

    int idx = key.indexOf(s);

    if (idx == -1)

        return key; // Nothing to remove

    StringBuilder buf = new StringBuilder();

    int prev = 0;

    for (int start = idx + s.length(); (idx = key.indexOf(s, start)) != -1; prev = start = idx + s.length())

        buf.append(key.substring(prev, idx));

    return (prev == 0 ? key : buf.append(key.substring(prev)).toString());

}

測(cè)試


System.out.println(removeDuplicates("mississippi", "ss")); // prints: missiippi

System.out.println(removeDuplicates("mississippi", "i"));  // prints: misssspp

System.out.println(removeDuplicates("mississippi", "s"));  // prints: misiippi

System.out.println(removeDuplicates("mississippi", "ab")); // prints: mississippi


查看完整回答
反對(duì) 回復(fù) 2023-05-10
?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

如果要?jiǎng)h除除第一個(gè)以外的所有事件:


public static String removeExceptFirst(String master, String child) throws Exception {

    int firstIndex = master.indexOf(child);

    int lastIndexOf = master.lastIndexOf(child);

    if (firstIndex == lastIndexOf) {

        if (firstIndex == -1) {

            throw new Exception("No occurrence!");

        } else {

            throw new Exception("Only one occurrence!");

        }

    }


    while (true) {

        firstIndex = master.indexOf(child);

        lastIndexOf = master.lastIndexOf(child);

        if (firstIndex == lastIndexOf) {

            return master;

        }

        master = master.substring(0, lastIndexOf) + master.substring(child.length() + lastIndexOf);

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-05-10
  • 3 回答
  • 0 關(guān)注
  • 194 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)