字符串数组:在循环中添加元素

时间:2014-01-04 12:56:27

标签: java loops arrays

这是我的代码

LDAPAttributeSet attributeSet = new LDAPAttributeSet();

String rolesName;
String uniquemem[] = rolesName.split(",");

if (uniquemem.length == 1)
    attributeSet.add(new LDAPAttribute("uniqueMember",
                        new String[] { "cn="+uniquemem[0]}));

if (uniquemem.length == 2)
    attributeSet.add(new LDAPAttribute("uniqueMember",
                        new String[] {
                                "cn=" +uniquemem[0],   
                                "cn=" + uniquemem[1]
                                    }));
if (uniquemem.length == 3)
    attributeSet.add(new LDAPAttribute("uniqueMember",
                        new String[] {
                                "cn=" + uniquemem[0]
                                        ,
                                "cn=" + uniquemem[1]
                                         ,
                                "cn=" + uniquemem[2]
                                          }));

我尝试在forloop中使用List<String>StringBuffer来动态添加/追加内容,但它只接受String []。 请帮我解决这个问题

我试过这个

StringBuffer sb=new StringBuffer()
            for(int i=0;i<uniquemem.length;i++)
            {
                sb.append("cn=" + uniquemem[i]);
            }

attributeSet.add(new LDAPAttribute("uniqueMember",sb.toString()));

3 个答案:

答案 0 :(得分:2)

您可以像这样更改现有的uniqemem数组

for(int i=0;i<uniquemem.length;i++)
{
    uniquemem[i] = "cn=" + uniquemem[i];
}
attributeSet.add(new LDAPAttribute("uniqueMember", uniquemem));

答案 1 :(得分:1)

这将为您提供所需的String数组:

ArrayList<String> memList = new ArrayList<>(uniquemem.length);
for(int i = 0; i < uniquemem.length; i++) {
    memList.add("cn=" + uniquemem[i]);
}
memList.trimToSize();
memList.toArray(String[0]);
String[] memArray = memList.toArray(new String[memList.size()]);

答案 2 :(得分:1)

这个怎么样..

LDAPAttributeSet attributeSet = new LDAPAttributeSet();

String rolesName;
String uniquemem[] = rolesName.split(",");

String item = null;
String arrayItems[uniquemem.length]

for(int i=0; i<uniquemem.length; i++) {
    item = "cn=" + uniquemem[i];
    arrayItems[i] = item;
}


attributeSet.add(new LDAPAttribute("uniqueMember", arrayItems);