我希望将逗号分隔的字符串中的数字列表转换为java中的curl https://services.daisycon.com/publishers/{id}/news -u {username}:{password}
,忽略空条目和重复项。分隔符可以是任何字符串,而不仅仅是逗号,但为了简单起见,我在这里使用逗号。
e.g。
Set<Long>
现在// NOTE: Edited to add " " case
String csv = "1,2,3, ,4,,2";
Set<Long> set = `???`
应该包含
输出
set
答案 0 :(得分:1)
Java 8解决方案如下:
1,2,3,4
答案 1 :(得分:1)
另一种for loop
中有一个if-statement
的方法(如果用户不想使用Stream
或利用Java 8新功能):
import java.util.HashSet;
import java.util.Set;
public class ConvertCSVToSETLong {
public static void main(String[] args){
// different numbers of commas
String csv = "1,,,,2,3,,,,4,,,,2,,5,,6,7,1";
Set<Long> set = new HashSet<Long>();
for(String s : csv.split(",")){
if(!s.trim().isEmpty()){
set.add(Long.parseLong(s));
}
}
System.out.println(set); // test
}
}
<强>输出强>
[1, 2, 3, 4, 5, 6, 7]
答案 2 :(得分:0)
使用扫描仪
String csv = "1,2,3,4,,2";
Set<Long> set = new HashSet<>();
try (Scanner sc = new Scanner(csv)) {
sc.useDelimiter(",");
while (sc.hasNext()) {
String next = sc.next();
if (!next.equals("")) {
set.add(Long.parseLong(next));
}
}
}
System.out.println(set);