将逗号分隔值转换为 List<Long>

新手上路,请多包涵

假设我有一组数字,如 1,2,3,4,5,6,7 作为单个输入 String 。我想将这些数字转换为 ListLong 对象,即 List<Long>

谁能推荐最简单的方法?

原文由 Kathir 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

我会使用优秀的谷歌番石榴图书馆来做到这一点。 String.split 会引起很多麻烦。

 String numbers="1,2,3,4,5,6,7";
Iterable<String> splitIterator = Splitter.on(',').split(numbers);
List<String> list= Lists.newArrayList(splitIterator );

原文由 jocelyn 发布,翻译遵循 CC BY-SA 3.0 许可协议

你的意思是这样的?

 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);

从 Java 8 开始,您可以将其重写为

List<Long> list = Stream.of(numbers.split(","))
        .map(Long::parseLong)
        .collect(Collectors.toList());


如果你想得到更短的版本 List<String>

 List<String> fixedSizeList = Arrays.asList(numbers.split(","));
List<String> resizableList = new ArrayList<>(fixedSizeList);

或单线

List<String> list = new ArrayList<>(Arrays.asList(numbers.split(",")));

原文由 Pshemo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题