如何从没有空值的列表中显示转换后的字符串?

时间:2013-12-23 08:47:23

标签: java

我有以下代码

String Roletext=null;
for(String text1:Rolelist1)
{
    Roletext+=text1+",";
}

我想将列表转换为字符串。然后我显示了价值。它将null作为第一个值。如果未初始化,则会显示错误。请帮忙。

9 个答案:

答案 0 :(得分:3)

您的问题解决方案:

String Roletext="";
for(String text1:Rolelist1)
{
    Roletext +=text1+",";
}

原因是当您与null进行串联时,字符串会将值附加到"null"

我的建议:

我建议您使用StringBuilder而不是字符串连接。

   StringBuilder b=new StringBuilder();
    for(String text1:Rolelist1)
    {
          b.append(text1).append(",");
    }

String Roletext=b.toString().replaceAll(",$", "");//get rid of last comma

答案 1 :(得分:2)

您应首先初始化您的String

String Roletext="";
int i;
for(i = 0;i < Rolelist1.size() - 1;i++)
{
    Roletext+=Rolelist1.get(i)+",";
}
Roletext+=Rolelist1.get(i);

或者为了获得更好的效果,您可以使用StringBuilder

StringBuilder sb=new StringBuilder();
sb.append("Your String");

答案 2 :(得分:0)

像这样定义:

String Roletext ="";

答案 3 :(得分:0)

这是推荐使用StringBuilder的完美示例:

StringBuilder roleText = new StringBuilder();
for(String text1:Rolelist1) {
    if(roleText.length() > 0) {
        roleText.append(",");
    }
    roleText.append(text1);
}

顺便说一下:if构造的长度是我用来阻止任何前导或尾随逗号的那个,它是阻止这个imo的最优雅的解决方案; - )

答案 4 :(得分:0)

您必须先初始化字符串。

String Roletext="";

但是使用String对象使用循环构建字符串不是一个好习惯。请改用StringBuilder

StringBuilder sb = new StringBuilder();
for(String text1 : rolelist1) {
    sb.append(text1);
}
roletext = sb.toString();

答案 5 :(得分:0)

String Roletext="";
for(String text1:Rolelist1)
{
    Roletext+=text1+",";
}

现在它不会占用任何空值,如果String text =“”,则最初字符串为空。 但是如果我们用null初始化它,那么String将第一个值作为null。 Null表示一些随机值,它并不意味着为空。

答案 6 :(得分:0)

这样做

String Roletext=null;
Rolelist1.remove(Collections.singleton(null)); //This line will remove all null from Rolelist1
for(String text1:Rolelist1) 
{
    Roletext+=text1+",";
}

答案 7 :(得分:0)

String Roletext = Arrays.toString(Rolelist1.toArray());

答案 8 :(得分:-1)

使用Joiner API,这样可以更加优雅地将列表与分隔符连接起来:

Joiner.on(",").join(Rolelist1)