Java 如何将多个逗号分隔的值附加到同一个键

Java 如何将多个逗号分隔的值附加到同一个键,java,Java,我有一把这样的钥匙: String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3"; String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"}; System.out.println(Arrays.stream(numbers

我有一把这样的钥匙:

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3";
String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"};
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(",")));
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);
我想将多个手机号码作为逗号分隔的值添加到密钥(
“&mobile=“
”)。我尝试将hasp映射与列表一起使用,但问题是它将值添加为数组,因为它是一个集合

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: [996****730, 97052***86, 984****956]

你为什么不试试这个:

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: 99****8730, 97******86, 98******56
HashMap hm=newhashmap();
字符串移动枚举器;
for(int i=0;i
为什么不试试这个:

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: 99****8730, 97******86, 98******56
HashMap hm=newhashmap();
字符串移动枚举器;
for(int i=0;i
使用Java 8,可以这样做:

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3";
String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"};
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(",")));
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);
输出:

MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3
MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3
对于以前版本的Java,请使用如下
StringBuilder

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3";
String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"};
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(",")));
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);

使用Java 8,可以这样做:

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3";
String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"};
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(",")));
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);
输出:

MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3
MOBILE_NUMBER1,MOBILE_NUMBER2,MOBILE_NUMBER3
对于以前版本的Java,请使用如下
StringBuilder

String mainUrl = "http://smshorizon.co.in/api/sendsms.php?";"&mobile= MOBILE_NUMBER1, MOBILE_NUMBER2, MOBILE_NUMBER3";
String[] numbers = {"MOBILE_NUMBER1", "MOBILE_NUMBER2", "MOBILE_NUMBER3"};
System.out.println(Arrays.stream(numbers).collect(Collectors.joining(",")));
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);

最简单的方法是使用StringBuilder并迭代数字,在数字后面加上数字本身和逗号。然后删除最后一个字符(尾随逗号),并将生成的字符串作为值

示例

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

最简单的方法是使用StringBuilder并迭代数字,在数字后面加上数字本身和逗号。然后删除最后一个字符(尾随逗号),并将生成的字符串作为值

示例

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

在Hashmap中,您将列表存储为键“&mobile=”的值。与此相反,你只需创建一个字符串,并用逗号分隔移动电话号码。最简单的方法是使用
StringBuilder
对数字进行迭代,然后在数字后面加上逗号。然后删除最后一个字符(尾随逗号),并将生成的
字符串作为值;hm.put(“&mobile=”,str);在Hashmap中,您将列表存储为键“&mobile=”的值。与此相反,你只需创建一个字符串,并用逗号分隔移动电话号码。最简单的方法是使用
StringBuilder
对数字进行迭代,然后在数字后面加上逗号。然后删除最后一个字符(尾随逗号),并将生成的
字符串作为值;hm.put(“&mobile=”,str);尽管所有答案都有效。我接受它作为Java8特性的答案,尽管所有答案都有效。我接受它作为Java8特性的答案