如何在JAVA中拆分字符串
问题描述:
我有一个很长的字符串,我想分割为基于规则的。 我的字符串是:如何在JAVA中拆分字符串
[1] (dokuma) deve, öküz, at tüyü, keçi kılı veya koyun yününün sıkıştırılarak sertleştirilmesiyle imal edilen ve giyecek yapımında kullanılan kalın ve kaba kumaş [2] (giyim) kumaştan yapılan yakasız bol ve uzun üstlük [3] (halk ağzı) abla, anne [4] (halk ağzı) dar pantolon üzerine giyilen ceket
,我想表明这样的:
[1] (dokuma) deve, öküz, at tüyü, keçi kılı veya koyun yününün sıkıştırılarak sertleştirilmesiyle imal edilen ve giyecek yapımında kullanılan kalın ve kaba kumaş
[2] (giyim) kumaştan yapılan yakasız bol ve uzun üstlük
[3] (halk ağzı) abla, anne
[4] (halk ağzı) dar pantolon üzerine giyilen ceket
我的代码是:
String[] strMeaning = meanings.text().split("[");
for(String key : strMeaning)
{
System.out.println(key);
}
,而我看到的错误是:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character class near index 0
[
^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.lang.String.split(Unknown Source)
at java.lang.String.split(Unknown Source)
at wikipedia.CreateXML.wordMeaning(CreateXML.java:39)
at wikipedia.CreateXML.prepareData(CreateXML.java:33)
at wikipedia.Main.main(Main.java:32)
我想不通。我该如何分裂我想要的方式?在此先感谢
答
答
你需要逃脱方括号,因为这是正则表达式中的一个特殊字符,这是用来执行匹配的。但是,你也需要逃避逃避,因为java中的反斜杠有特殊的含义。你最终
String[] strMeaning = meanings.text().split("\\[");
for(String key : strMeaning)
{
System.out.println("[" + key);
}
我加在println
作为匹配的额外位“[”将卸下支架。
答
[是Java正则表达式中的特殊字符。
尝试这样:
String[] temp = text.split("\\[");
+0
由于“[”将被抓取,不会完全产生所需的输出。 – 2013-03-10 22:48:54
答
我会使用以下命令:String[] strMeaning = meanings.text().split("\s(?=\[)");
。您不想在[
上分割,而是在下一个[
之前分割。
由于“[”将被抓取,不会产生所需的输出。 – 2013-03-10 22:47:31