首页 > 解决方案 > 如何打印用大括号分隔的数组列表逗号?

问题描述

如何在Java中打印用大括号分隔的字符串列表?例如,一个包含三个成员“Mother”、“Father”和“Daughter”的家庭应该打印为

There is a family consists of { Mother, Father, Daughter }

或空荡荡的家庭

There is a family consists of { }

我写了这个,但它不能打印字符串列表:

String[] family = {" "};
String separator = "";
System.out.print("{ ");
for (String word : family) {
    System.out.print(separator);
    System.out.print(word);
    separator = " ";
}
System.out.print(" }");

谢谢!

标签: javaarraylistprintingcommacurly-braces

解决方案


(如承诺的那样)这里有一些提示可以帮助您完成尝试...

这是您的代码当前的样子:

  String[] family = {" "};
    String separator = "";
    System.out.print("{ ");
    for (String word : family) {
        System.out.print(separator);
        System.out.print(word);
        separator = " ";
    }
    System.out.print(" }");
}

我假设那是一个main具有正确签名的方法内,该签名class.

  1. family声明不正确:

     String[] family = {" "};
    

    这不是您表示空数组的方式。(它实际上是一个包含一个字符串的数组,它由一个空格组成。这可以解释你的一些困难!!)

    Java中的空字符串数组可以声明为:

    String[] family = {};
    String[] family = new String[0];
    String[] family = new String[]{};
    
  2. 分隔符不应该是"". 它应该是一个逗号。(不完全是......但试试看。)

  3. 您无需更改循环中的分隔符。分隔符应始终为逗号。

如果您按照上述操作,那么您将获得如下输出:

{  }
{ ,Mother }
{ ,Mother,Father }
{ ,Mother,Father,Daughter }

仍有两个问题需要解决。

  1. 仅使用逗号作为分隔符是不正确的。(您应该能够弄清楚该怎么做。)

  2. 只要列表非空,我们就会有一个不需要的前导逗号。这个比较棘手。问题是这个序列:

        System.out.print(separator);
        System.out.print(word);
    

    假设在我们现在打印的那个之前有一个“单词”。但当我们处于列表的开头时,情况并非如此。

处理额外逗号的一种方法是不在列表开头输出分隔符。但是怎么做?

提示true使用列表开头的标志变量,并false在打印第一个元素后将其更改为。(并使用标志来决定是否需要输出分隔符。)


推荐阅读