使用与for循环的串联构建字符串名称

时间:2017-04-27 04:52:09

标签: java string concatenation

我想用Java创建一个运行时字符串名称 我尝试过在JavaScript中使用的功能,但它的打印价值如 Status_Name_0 而非打开分配给字符串 Status_Name_0

 public static void GetPaymentStatusList(){
        int i=0;
        String Status_Name_0="Open";
        String Status_ID_0="0";
        String Status_Name_1="Approved";
        String Status_ID_1="1";
        String Status_Name_2="Denied";
        String Status_ID_2="2";
        for(i=0; i<3; i++){
            Vars.PaymentStatusName_List.add("Status_Name_"+i);
            Vars.PaymentStatusId_List.add("Status_ID_"+i);
        }
    }

3 个答案:

答案 0 :(得分:1)

  

但它的打印值如Status_Name_0而不是Open

因为这是你添加到列表中的内容......

 add("Status_Name_"+i);

获得所需内容的方式是Map<String, String>

Map<String, String> map = new HashMap<>();
map.put("Status_Name_0", "Open");
// ...

for (int i=0;i<map.size();i++) {
    String open = map.get("Status_Name_"+i);
}

但是你怎么做一些课呢?

public class PaymentStatus {

    int id;
    String name;

    public PaymentStatus(int id, String name) {
        this.id = id; 
        this.name = name;
    }

    @Override 
    public String toString() {
        return String.format("%s[id: %d, name: %s]",
            getClass().getSimpleName(), id, name);
    }
}

首选List<PaymentStatus>优先于将整数附加到任何变量。

 public static List<PaymentStatus> getPaymentStatusList() {
    List<PaymentStatus> list = new ArrayList<>();

    paymentStatusList.add(new PaymentStatus(0, "Open"));
    paymentStatusList.add(new PaymentStatus(1, "Approved"));
    paymentStatusList.add(new PaymentStatus(2, "Denied"));

    return list;
}

答案 1 :(得分:0)

您实际上是将字符串“Status_name_”与“0”连接起来,这将导致“Status_name_0”,一个字符串,而不是像Status_name_0这样的变量。据我所知,你想要String_name_i(i = 0,1,2,....)的值。要使其工作,请使用String数组。

String[] string_names = { "Open", "Approved", "Denied" };

int[] string_id = { 0, 1, 2 };

:您可能不需要string_id数组,因为您可以在for循环中使用i的值。

将它们添加到列表中,如:

Vars.PaymentStatusName_List.add(string_name[i]);

答案 2 :(得分:-3)

StringBuilder param = new StringBuilder();
param.append("shopid"
        + "=" + shopDetails.getShopId() + "&" + "username" + "=" + userDetail.getUserName() + "&" + "userid" + "=" + userDetail.getUserId() + "&");
for (int i = 0; i < brandList.size(); i++) {
    param.append("brandId" + "[" + i + "]" + "=" + brandList.get(i).getBrandId()
            + "&" + "shortqua" + "[" + i + "]" + "=" + shortageStockList.get(i) + "&");
}
param.append("lattude" + "=" + String.valueOf(latitude) + "&" + "longitude" + "=" + String.valueOf(longitude));