2016-05-23 10 views
1

Ich habe einen apikey wie diese anzuhängen. Ich habe versucht, Hasp Map mit Liste zu verwenden, aber das Problem ist, fügt die Werte als Array hinzu, weil es eine Sammlung ist.Wie mehrere durch Komma getrennte Werte zu demselben Schlüssel

HashMap<String, Object> hm = new HashMap();  
List<String> list = new ArrayList(); 

for (int i = 0; i < numbers.length; i++) { 
    list.add(numbers[i]); 
    hm.put("&mobile=", list); 
} 
System.out.println("HashMap: " + hm.get("&mobile=")); 
System.out.println("message: " + message); 

//prints HashMap: [9963718730, 9705245186, 9849033956] 

Wie füge ich es als kommagetrennte Werte wie:

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3"; 
+0

In HashMap Sie Liste als Wert für den Schlüssel "& Handy =" werden zu speichern. Statt dessen machen Sie einfach eine Zeichenfolge und fügen Sie die Handynummer mit Komma getrennt an. –

+0

Der einfachste Weg wäre, einen 'StringBuilder' zu verwenden und über Ihre Zahlen zu iterieren, indem Sie die Zahl selbst und ein Komma danach anhängen. Dann löschst du das letzte Zeichen (das nachgestellte Komma) und fügst die von dir erstellte "Zeichenfolge" als Wert ein. – Mena

+0

Von der Apache Commons-Bibliothek: String str = StringUtils.join (Liste, ','); hm.put ("& mobile =", str); –

Antwort

2

Mit Java 8, kann es wie geschehen dies:

String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"}; 
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(","))); 

Ausg ut:

MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3 

mit früheren Versionen von Java verwenden, um eine StringBuilder wie folgt aus:

StringBuilder buffer = new StringBuilder(); 
for (int i = 0; i < numbers.length; i++) { 
    if (i > 0) { 
     buffer.append(','); 
    } 
    buffer.append(numbers[i]); 
} 
System.out.println(buffer); 

Ausgang:

MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3 
+0

Obwohl alle Antworten funktionieren. Ich akzeptiere es als Antwort für Java 8 Feature – Satyadev

1

Warum Sie nicht mit diesem versuchen:

HashMap<String, Object> hm = new HashMap();  
String mobileNumbers; 

for (int i = 0; i < numbers.length; i++) { 
    mobileNumbers = mobileNumbers + "," + numbers[i]; 

} 
mobileNumbers = mobileNumbers.subString(1); //To remove first comma. 
hm.put("&mobile=", mobileNumbers); 

System.out.println("HashMap: " + hm.get("&mobile=")); 
System.out.println("message: " + message); 

//prints HashMap: 9963718730, 9705245186, 9849033956 
2

Der einfachste Weg wäre, einen Stringbuilder und Iterierte zu verwenden über deine Zahlen, die Zahl selbst und ein Komma danach anhängend. Dann würden Sie das letzte Zeichen (das nachgestellte Komma) löschen und die von Ihnen erstellte Zeichenfolge als Ihren Wert setzen.

Beispiel

StringBuilder sb = new StringBuilder(); 
// assuming the "numbers" variable is a String array or collection 
for (String number: numbers) { 
    sb.append(number).append(","); 
} 
// removing trailing "," 
sb.deleteCharAt(sb.length() - 1) 
hm.put("&mobile=", sb.toString()); 
Verwandte Themen