需要打印不带“括号”的 ArrayList

Posted

技术标签:

【中文标题】需要打印不带“括号”的 ArrayList【英文标题】:Need ArrayList printed without "Brackets" 【发布时间】:2011-10-12 14:09:48 【问题描述】:

大家好,我有一个数组列表在 jsp 上显示为 [MCA, MCB, COMM, DMISA]

我在 jsp 上调用它:

<td>$bean.CodesNames</td>

在 bean 中,getter 是:

public void setCodesNames(ArrayList<String> CodesNames)

    this.CodesNames = CodesNames;

如何在没有括号的情况下显示它?

【问题讨论】:

你显示的代码实际上是setter,而不是getter。 【参考方案1】:

你得到括号是因为 ArrayList#toString() 被隐式调用,以便将列表转换为可打印的字符串。您可以通过在 JSP 中自己打印列表来解决此问题:

<c:forEach items="$CodesNames" var="item" varStatus="status">
    $item<c:if test="$!status.last">,</c:if>
</c:forEach>

或者用一个 bean getter 比返回一个字符串:

public String getCodesNamesAsString()

    // using a Guava Joiner
    return Joiner.on(",").useForNull("null").join(getCodesNames());

(如果您不熟悉 Guava,请参阅 Joiner JavaDocs。)

【讨论】:

在 jsp 上进行迭代非常快速......谢谢!【参考方案2】:

添加另一个 getter 方法:

public void getCodesNamesFormatted()

  StringBuilder sb = new StringBuilder();
  for (String codeName : CodesNames) sb.append(codeName).append(',');
  return sb.deleteCharAt(sb.length());

并从 JSP 中调用它:

<td>$bean.codesNamesFormatted</td>

【讨论】:

【参考方案3】:

这个字符串 ([MCA, MCB, COMM, DMISA]) 是由 Array 类的 toString() 方法生成的。 您需要创建自己的代码,该代码将遍历数组元素并逐个打印它们。 或者当然你可以使用脏的replaceAll方式。两种方式见下面的代码:

1)

<% for( String arrayItem : myArray )  %>
<%= arrayItem %>,
<%%>

2)

<%=myArray.toString().replaceAll("\[|\]","")%>

【讨论】:

感谢兄弟的输入...我希望我可以在这项工作中使用脚本...大声笑 如果不是绝对必要,请不要使用 scriptlet。 ***.com/questions/3177733/…【参考方案4】:

你可以实现 getter 来生成你需要的格式

public String getCodesNamesFormatted()

    // format as you like

那就用吧

<td>$bean.codesNamesFormatted</td>

【讨论】:

【参考方案5】:

你需要迭代它。不要依赖toString

<td>
    <c:forEach var="name" varStatus="stat" items="$bean.codesNames">
        <c:out value="$name"/>
        <c:if test="$stat.index < fn:length(bean.codesNames) - 1">
            <c:out value=","/>
        </c:if>
    </c:forEach>
</td>

PS:&lt;c:out/&gt; 在这里是可选的。

【讨论】:

你不需要&lt;c:out/&gt;只是一个逗号。 是的,我知道。只是为了清楚起见而添加它。

以上是关于需要打印不带“括号”的 ArrayList的主要内容,如果未能解决你的问题,请参考以下文章

在 Dart 中打印不带括号的列表

打印不带括号和逗号的数组

在元组中打印元素,不带逗号,引号和括号

print()函数与转义字符

JavaScript 中怎么不带括号的调用函数

调用不带括号的函数