首页 > 解决方案 > Java - 如何用“1 ½”之类的分数字符在“空格”上拆分字符串?

问题描述

所以我希望能够用空格分割这个字符串:“1 ½ 杯无脂肪的一半,被分割的”

我这样写我的代码:

String trimmed;
String[] words = trimmed.split(" ");

但它不起作用!1 和 ½ 最终位于数组的相同位置。

我还尝试了如何使用任何空白字符作为分隔符来拆分字符串,但它也不会拆分字符串。在文本编辑器中查看显然有某种“空间”,但我不知道如何拆分它。是因为“½”吗?

标签: java

解决方案


你有一个薄的空间,而不是一个“常规”的空间字符。

在此处输入图像描述

对此的正则表达式捕获并非易事,因为您需要捕获其他字符类。您至少希望将其捕获为一个额外的分组......

System.out.println(Arrays.toString(s.split("(\\s|\\u2009)")));

...但您还需要在此搜索中包含所有其他非标准空白字符,以确保您不会错过任何内容。以上适用于您的情况。


推荐阅读