删除字符串中的Nextline重复项

时间:2017-06-15 06:03:24

标签: java

关注使用JAVA

我的txtfile(库 - 充当数据库)包含以下内容;

L7232-TRJCD5/   |  FT1  |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCD5/   |  FT2  |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCE5/   |  FT2  |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCEJ/   |  FT1  |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCEJ/   |  QA   |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCEJ/   |  QA1  |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88
L7232-TRJCEJ/   |  QA   |   4   |   NS70    |  QUAD |   Fusion  | 70C_VPLGA88

使用缓冲读卡器和扫描仪功能后 lines是变量。

下一步是使用下面的分割;

String[] Tokens = lines.split("\\\|");
System.out.println(Tokens[1]);

输出显示如下;

FT1  
FT2  
FT2  
FT1  
QA  
QA1  
QA  

我担心,因为输出结构为下一行 我被迫要求删除重复项。 这意味着我不知道如何使用它来进行下一步。

对建议和解决方案持开放态度。

2 个答案:

答案 0 :(得分:0)

只需使用一组字符串来存储代码。根据定义,一个集合不能有重复,因此这应该可以解决您的特定问题。

SortedSet<String> set = new TreeSet<>();
for (String line : lines) {
    String[] tokens = line.split("\\|");
    set.add(tokens[1]);
}

现在迭代这个有序集应该产生按字母顺序升序排序的唯一输出:

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

答案 1 :(得分:0)

将输出的所有元素放入数组列表中,然后使用Set删除重复项:

List<String> arrayList = Arrays.asList(Tokens);

Set<String> set = new HashSet<String>(arrayList);
for(String str : set){
    System.out.println(str);
}