我们可以在String中将String数组添加到StringBuffer或StringBuilder中吗?

时间:2014-10-07 11:20:03

标签: java arrays string stringbuilder stringbuffer

现在我正在开发一个关于Java的简单项目。我在String Builder中添加并在控制台上打印字符串。当我尝试将字符串数组追加到字符串生成器中时,它会在控制台上打印对象而不是字符串数组。请告诉我,我的尝试是对还是错。

3 个答案:

答案 0 :(得分:6)

  • 如果要添加Arrays.toString(yourArray)数组的表示,请添加String
  • 如果它是多维数组(例如String[][]),则将Arrays.deepToString(yourArray)添加到StringBuilder
  • 添加array本身将添加默认的String表示。
  • 最后,如果您需要控制代表arrayString的方式,那么您需要自己迭代这些元素并将其添加到自定义的StringBuilder中格式。

修改

作为旁注,要使用自定义Object数组进行此操作,您可能希望覆盖Object.toString方法,否则您的元素将以默认值打印String的{​​{1}}代表(即this)。

答案 1 :(得分:3)

Array是一个Object。不要直接附加数组。只需迭代数组并将数组的每个元素附加到String构建器。

for(String str : arr) {
    builder.append(str);
}

答案 2 :(得分:0)

/** * <p>Joins the elements of the provided array into a single String * containing the provided list of elements.</p> * * <p>No delimiter is added before or after the list. * A <code>null</code> separator is the same as an empty String (""). * Null objects or empty strings within the array are represented by * empty strings.</p> * * <pre> * StringUtils.join(null, *) = null * StringUtils.join([], *) = "" * StringUtils.join([null], *) = "" * StringUtils.join(["a", "b", "c"], "--") = "a--b--c" * StringUtils.join(["a", "b", "c"], null) = "abc" * StringUtils.join(["a", "b", "c"], "") = "abc" * StringUtils.join([null, "", "a"], ',') = ",,a" * </pre> * * @param array the array of values to join together, may be null * @param separator the separator character to use, null treated as "" * @param startIndex the first index to start joining from. It is * an error to pass in an end index past the end of the array * @param endIndex the index to stop joining from (exclusive). It is * an error to pass in an end index past the end of the array * @return the joined String, <code>null</code> if null array input */

Apache Commons Lang StringUtils#join().太酷了。希望这会有所帮助。