假设我有一组像1,2,3,4,5,6,7输入一样的数字String.我想将这些数字转换List为Long对象,即List<Long>.
任何人都可以推荐最简单的方法吗?
Psh*_*emo 55
你的意思是这样的?
String numbers = "1,2,3,4,5,6,7";
List<Long> list = new ArrayList<Long>();
for (String s : numbers.split(","))
list.add(Long.parseLong(s));
System.out.println(list);
Run Code Online (Sandbox Code Playgroud)
从Java 8开始,您可以将其重写为
List<Long> list = Stream.of(numbers.split(","))
.map(Long::parseLong)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
如果你想得到更短的版本 List<String>
List<String> fixedSizeList = Arrays.asList(numbers.split(","));
List<String> rezisableList = new ArrayList<>(fixedSizeList);
Run Code Online (Sandbox Code Playgroud)
或在线
List<String> list = new ArrayList<>(Arrays.asList(numbers.split(",")));
Run Code Online (Sandbox Code Playgroud)
使用java-8的简单方便的解决方案(为了完成线程):
String str = "1,2,3,4,5,6,7";
List<Long> list = Arrays.stream(str.split(",")).map(Long::parseLong).collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
Run Code Online (Sandbox Code Playgroud)System.out.println(list);[1,2,3,4,5,6,7]
更好的是,使用Pattern.splitAsStream():
Pattern.compile(",").splitAsStream(str).map(Long::parseLong).collect(Collectors??.toList());
Run Code Online (Sandbox Code Playgroud)
joc*_*lyn -14
我会使用优秀的谷歌番石榴库来做到这一点。String.split 会引起很多麻烦。
String numbers="1,2,3,4,5,6,7";
Iterable<String> splitIterator = Splitter.on(',').split(numbers);
List<String> list= Lists.newArrayList(splitIterator );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
34644 次 |
| 最近记录: |