构造一个新方法printList,它显示LinkedList <string> </string>的内容

时间:2013-03-12 11:41:56

标签: java arrays string list printing

如何通过构造一个显示LinkedList aList内容的新方法printList来打印出这个新数据结构。 使用(打印)作为模板。

public void actionPerformed(ActionEvent event) {    
    String[] anArray=null;
    if (event.getSource() == reading) {
        String s = txt1.getText();
        String delims = expression.getText(); 
        anArray = s.split(delims);
        result.setText("");
        print(anArray);
    } 
    LinkedList<String> mkList;
    java.util.List<String> aList = new LinkedList<String>();

} // actionPerformed

public LinkedList<String> mkList(String[] sa) {
    LinkedList<String> st = new LinkedList<String>();
    for (int i = 0; i < sa.length && sa[i] != null; i++)
        st.add(sa[i] + "\n");
    return st;
} // mkList

public void print(String[] sa) {  
   for (int i = 0; i < sa.length && sa[i] != null; i++)
        result.append(sa[i] + "\n");
   // Log the results to the terminal
   System.out.println("Input: '" + txt1.getText() + "'");
   System.out.println("Regular Expression: '" + expression.getText() +"'");
   System.out.println("Output:\n" + result.getText());
} // print

3 个答案:

答案 0 :(得分:2)

只需System.out.println(aList);

OR

public void printList (LinkedList<String> aList) {
    for(String currentString : aList){
        System.out.println(currentString);
    }
}

答案 1 :(得分:0)

您也可以使用此解决方案:)

public void printList (LinkedList<String> aList) {
    System.out.println(aList.toString().replace("[", "").replace("]", "").replace(",", "\n"););
}

答案 2 :(得分:0)

所有标准Java集合都有合理的toString()实现。通常,元素用方括号“[”括起来,元素用逗号分隔。在每个元素上调用toString()。见AbstractCollection source code

如果此表示符合您的需求,请使用toString。无需编写代码。

如果您想要自定义表示,则可以使用或编写辅助方法。来自Guava的Joiner class非常有用,应该是JDK的一部分。您可以将其视为函数式语言中的reducer,如果要对每个元素应用特定操作,还可以使用Iterators.transform()添加映射步骤。

显然,仅将Guava用于Joiner类是没有意义的。您也可以编写自己的方法。使用AbstractCollection.toString()或Joiner.join()作为参考。