用词分隔java中的字符串
如何将以下单词拆分为数组
That's the code
成
array 0 That 1 s 2 the 3 code
我试过这样的事
String str = "That's the code"; String[] strs = str.split("\\'"); for (String sstr : strs) { System.out.println(sstr); }
但输出是
That s the code
要专门拆分白色空间和撇号:
public class Split { public static void main(String[] args) { String [] tokens = "That's the code".split("[\\s']"); for(String s:tokens){ System.out.println(s); } } }
或拆分任何非单词字符:
public class Split { public static void main(String[] args) { String [] tokens = "That's the code".split("[\\W]"); for(String s:tokens){ System.out.println(s); } } }
您可以根据非字符字符进行拆分:
String str = "That's the code"; String[] splitted = str.split("[\\W]");
对于您的输入,输出将是:
That s the code
如果您的字符串包含突出显示的字母,我发现最好的解决方法是:
String[] listeMots = phrase.split("\\P{L}+");
例如,如果你的字符串是
String phrase = "Salut mon homme, comment ça va aujourd'hui? Ce sera Noël puis Pâques bientôt.";
然后,您将获得以下单词(为了清楚起见,用引号和逗号分隔):
"Salut", "mon", "homme", "comment", "ça", "va", "aujourd", "hui", "Ce", "sera", "Noël", "puis", "Pâques", "bientôt".
希望这可以帮助!
如果你想拆分非字母字符
String str = "That's the code"; String[] strs = str.split("\\P{Alpha}+"); for (String sstr : strs) { System.out.println(sstr); }
\ P {Alpha}匹配任何非字母字符,这被称为POSIX字符,您可以在此链接中阅读更多相关信息它非常有用。 +表示我们应该拆分任何连续的字符串。
并且输出将是
That s the code
您可以通过正则表达式进行拆分,该正则表达式可以是两个字符之一 – 引号或空格:
String[] strs = str.split("['\\s]");
你应该首先使用str.replaceAll("'", " ")
替换'
with " "
(空格),然后你可以使用str.split(" ")
将字符串拆分为空格分隔符。你可以或者使用正则表达式来分割’OR空格。
您可以在正则表达式中使用OR
public static void main(String[] args) { String str = "That's the code"; String[] strs = str.split("'|\\s"); for (String sstr : strs) { System.out.println(sstr); } }
该字符串将由单引号(’)或空格分隔。 单引号不需要转义。 输出将是
run: That s the code BUILD SUCCESSFUL (total time: 0 seconds)
split
使用正则表达式并且在正则表达式中不是特殊字符,所以你不需要用\
来转义它。 要表示空格,您可以使用\s
(在String中需要将其写为"\\s"
)。 另外,要创建字符集,可以使用“OR”运算符|
像a|b|c|d
,或者只使用字符类[abcd]
,这意味着与(a|b|c|d)
完全相同。
为了简单起见,您可以使用
String[] strs = str.split("'| ");
要么
String[] strs = str.split("'|\\s");//to include all whitespaces
要么
String[] strs = str.split("['\\s]");//equivalent of "'|\\s"