java
  • string
  • map
  • 2010-10-25 6 views 6 likes 
    6

    Esiste una funzione comune (in commons apache o simile) per creare mappe da stringhe tipo parametro di query?common java-function per creare mappe da stringhe

    a specifici:

    Variante un (Querystring)

    s="a=1&b=3" 
    => Utils.mapFunction(s, '&', '=') 
    => (Hash)Map { a:1; b:3 } 
    

    Variante B (CacheControl-Header)

    s="max-age=3600;must-revalidate" 
    => Utils.mapFunction(s, ';', '=') 
    => (Hash)Map { max-age:3600; must-revalidate:true } 
    

    Non voglio reinventare la ruota.

    Grazie

    risposta

    1

    Sembra che una semplice estensione del HashMap lo farebbe:

    /** 
    * Simple demo of extending a HashMap 
    */ 
    public class TokenizedStringHashMap extends HashMap<String, String> { 
    
        void putAll(String tokenizedString, String delimiter) { 
        String[] nameValues = tokenizedString.split(delimiter); 
        for (String nameValue : nameValues) { 
         String[] pair = nameValue.split("="); 
         if (pair.length == 1) { 
         // Duplicate the key name if there is only one value 
         put(pair[0], pair[0]); 
         } else { 
         put(pair[0], pair[1]); 
         } 
        } 
        } 
    
        public static void main(String[] args) { 
        TokenizedStringHashMap example = new TokenizedStringHashMap(); 
    
        example.putAll("a=1&b=3", "&"); 
        System.out.println(example.toString()); 
        example.clear(); 
    
        example.putAll("max-age=3600;must-revalidate", ";"); 
        System.out.println(example.toString()); 
    
        } 
    } 
    
    1

    non credo che esista un tale libreria, ma se si vuole reimplementare con pochissimi codice, è possibile utilizzare "lambda librerie oriented", come Guava o LambdaJ.

    2

    stringtomap

    Prova ora o sfogliare il codice sorgente per vedere come è stato implementato.

    Problemi correlati