簡體   English   中英

將字符串中的值轉換為哈希圖?

[英]Convert value in string into hashmap?

我有一個字符串,其中有多個值。 鍵和值之間用*分隔,整個值之間用$分隔。

下面是示例:

String agf = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";

現在,我想將此值放入鍵值對的hashmap中。

下面是我正在使用但無法將其轉換為哈希圖的代碼。 請指導。

String agf = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";

String []tmp = StringUtils.split(agf,'*');
for (String v : tmp) {
    String[] t = StringUtils.split(v,'$');
    map.put(t[0], t[1]);
} 

查看示例字符串,您應該首先在$上分割(以獲取單個鍵值對),然后在*上分割(以分離鍵和值)

import java.util.HashMap;
import java.util.Map;

public class Parse{
    public static void main(String ...args){
        String agf = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";
        String [] split = agf.split("\\$");
        Map<String,String> map = new HashMap<String,String>();
        for(String temp : split){
            String [] tempo = temp.split("\\*");
            map.put(tempo[0],tempo[1]);
        }
        for(String mapkeys : map.keySet()){
            System.out.println(mapkeys+" ::: "+map.get(mapkeys));
        }
    }
}

如果給定鍵有多個值,請使用以下命令:

public static void main(String ...args){
        String agf = "abc*pqr*gas$sfd*ghn$atr*mnb$tre*fgt";
        String [] split = agf.split("\\$");
        Map<String,String> map = new HashMap<String,String>();
        for(String temp : split){
            String [] tempo = temp.split("\\*");
            StringJoiner sj = new StringJoiner(",");
            for(int i = 1; i < tempo.length;i++){
                sj.add(tempo[i]);
            }
            String value = sj.toString();
            map.put(tempo[0],value);
        }
        for(String mapkeys : map.keySet()){
            System.out.println(mapkeys+" ::: "+map.get(mapkeys));
        }
    }

希望對您有所幫助

切換“ *”和“ $”。

String agf = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";
String []tmp = StringUtils.split(agf,'$');
for (String v : tmp) {
   String[] t = StringUtils.split(v,'*');
   map.put(t[0], t[1]);
} 

使用string.split("//$")string.split("//*")作為用例的正則表達式。

完整代碼:

        String str = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";
        String[] entries = str.split("\\$");

        Map<String, String> map = new HashMap<String, String>();

        for (int i=0; i<entries.length; i++) {
            String[] entry = entries[i].split("\\*");
            map.put(entry[0], entry[1]);
        }

        System.out.println("Entries are -> " + map.entrySet());
String agf = "abc*pqr$sfd*ghn$atr*mnb$tre*fgt";

\\next array will contain such elements: "abc*pqr", "sfd*ghn", "atr*mnb", "tre*fgt"
String[] pairs = agf.split("\\$");

Map<String, String> map = new HashMap();

for (String pair: pairs) {

    \\in first iteration next array will contain such elements: "abc", "pqr"
    String[] t = pair.split("\\*");

    \\just fill out map with data
    map.put(t[0], t[1]);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM