拆分后打印一个值(java)

时间:2012-11-08 15:20:49

标签: java arraylist split

这是代码:

ArrayList<String> listSell = new ArrayList<String>();

listSell.add("hello : world : one");
listSell.add("hello : world : one");
listSell.add("hello : world : one");

String splitSell[] = null;

for (int i = 0; i < listSell.size(); i++){
    splitSell = (listSell.get(i)).split(":");
    System.out.println(splitSell[0]);
}

当我使用splitSell [0]时,这将打印所有值:

hello 
hello 
hello 

我怎么才能打印一个值?

2 个答案:

答案 0 :(得分:1)

如果您的意思是,您希望在拆分后删除重复的元素。将splitted元素添加到Set实现类中并迭代它。

 Set<String> set = new LinkedHashSet<>();
for (int i = 0; i < listSell.size(); i++){
    splitSell = (listSell.get(i)).split(":");
    set.add(splitSell[0]);
}

   for(String s: set){
     System.out.println(s);
     }

实现类的java.util.Set不接受重复元素,因此在您的示例中只会打印“hello”一次。

答案 1 :(得分:0)

不确定你想要什么。但这里有一些选择。

ArrayList<String> listSell = new ArrayList<String>();

listSell.add("hello : world : one");
listSell.add("hello : world : one");
listSell.add("hello : world : one");

String splitSell[] = null;
Set<String> split1 = new TreeSet<String>();
Set<String> split2 = new TreeSet<String>();
Set<String> split3 = new TreeSet<String>();

for (String listItem : listSell) {
    splitSell = listItem .split(":");
    split1.add(splitSell[0]);
    split2.add(splitSell[1]);
    split3.add(splitSell[2]);
}

//Prints all the first values
for (String string1 : split1) {
    System.out.println(string1);
}

//Prints all the second values
for (String string2 : split2) {
    System.out.println(string2);
}

//Prints all the third values
for (String string3 : split3) {
    System.out.println(string3);
}

请注意,add方法仅添加元素(如果该元素尚未包含在Set中)。请参阅Set documentation