数据库中的mapRule列包含
- 脚趾深度部分厚度烧伤(紊乱)
- 脚趾二度烧伤(病症)
- 足部浅表局部厚度烧伤(病症)
- 脚趾二度烧伤(病症)
- 脚趾深度部分厚度烧伤(紊乱)
- 脚趾深度部分厚度烧伤(紊乱)
我必须删除重复,需要像这个一样的输出
- 脚趾深度部分厚度烧伤(紊乱)
- 脚趾二度烧伤(病症)
- 足部浅表局部厚度烧伤(病症)
怎么得到这个?我正在从mysql&我的代码是
代码
<%
pstm = Con.prepareStatement(selectsql);
pstm.setString(1, snomedid);
resultSet = pstm.executeQuery();
while (resultSet.next()) {
String[] pipe = resultSet.getString("mapRule").split("\|");
if (pipe.length > 1) {
%>
<p><%=pipe[1]%></p>
<%
}
}
%>
如何从结果集中删除重复项?
您确实应该在数据库端用查询来处理这一问题,但这里有一个关于Set
的快速示例和简短解释。
Set
是一个可自动为您处理重复项的集合。因此,与其将结果保存到String[]
,然后删除重复项,不如尝试将其保存到Set<String>
。
String[] results = {"a", "b", "a"}; //This is just dummy data
Set<String> resultsInSet = new HashSet<>();
for (String result: results){
resultsInSet.add(result); //This is how you add a new element to the set
}
//You can loop through a set just like an array
for (String result: resultsInSet){
System.out.println(result);
}
System.out.println(resultsInSet); //And print the whole set like this
输出:
a
b
[a, b]
如果您使用的是闪亮的新Java8,那么您甚至可以在没有Sets
的情况下完成此操作,只需在一个String[]
中获得所有结果后使用Stream
即可。这里有一个快速的方法:
String[] results = {"a", "b", "a"}; //This is just dummy data
String[] uniqueResults = Arrays.stream(results).distinct().toArray(String[]::new);
System.out.println(Arrays.toString(uniqueResults));