Java - 一次拆分和修剪

新手上路,请多包涵

我有一个像这样的字符串: String attributes = " foo boo, faa baa, fii bii," 我想得到这样的结果:

 String[] result = {"foo boo", "faa baa", "fii bii"};

所以我的问题是应该如何在我已经拆分的一次拍摄中进行拆分和修剪:

 String[] result = attributes.split(",");

但是 spaces 仍然在结果中:

 String[] result = {" foo boo", " faa baa", " fii bii"};
                    ^           ^           ^

我知道我们可以做一个循环并为每个人制作 trim 但我想在镜头中制作它。

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

阅读 385
2 个回答

使用正则表达式 \s*,\s* 进行拆分。

 String result[] = attributes.split("\\s*,\\s*");


对于初始和尾随空格

以前的解决方案仍然保留初始和尾随空白。因此,如果我们期待它们中的任何一个,那么我们可以使用以下解决方案来删除它们:

 String result[] = attributes.trim().split("\\s*,\\s*");

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

使用java 8你可以在一行中这样做

String[] result = Arrays.stream(attributes.split(",")).map(String::trim).toArray(String[]::new);

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

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