用java分裂字符串中的字符串

时间:2013-12-22 09:40:26

标签: 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

8 个答案:

答案 0 :(得分:16)

要专门拆分白色空间和撇号:

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

答案 1 :(得分:4)

您可以根据非字符字符进行拆分:

String str = "That's the code";
String[] splitted = str.split("[\\W]");

对于您的输入,输出将为:

That
s
the
code

答案 2 :(得分:4)

如果您的字符串包含突出显示的字母,我发现最好的解决方法是:

String[] listeMots = phrase.split("\\P{L}+");

例如,如果您的String是

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".

希望这有帮助!

答案 3 :(得分:1)

您可以通过正则表达式进行拆分,该正则表达式可以是两个字符之一 - quote或space:

String[] strs = str.split("['\\s]");

答案 4 :(得分:1)

如果要拆分非字母字符

String str = "That's the code";
String[] strs = str.split("\\P{Alpha}+");
for (String sstr : strs) {
        System.out.println(sstr);
}

\ P {Alpha}匹配任何非字母字符,这被称为POSIX字符,您可以在this link中阅读更多相关信息。这非常有用。 +表示我们应该拆分任何连续的字符串。

,输出将是

That
s
the
code

答案 5 :(得分:1)

您应首先使用'" "替换为str.replaceAll("'", " ")(空格),然后使用str.split(" ")将字符串拆分为空格分隔符。您也可以使用正则表达式拆分“OR空格。

答案 6 :(得分:0)

split使用正则表达式,而正则表达式'不是特殊字符,因此您无需使用\转义它。要表示空格,可以使用\s(在String中需要将其写为"\\s")。另外,要创建一组字符,您可以使用“{”1 {}等“{”}运算符|,或者只使用字符类a|b|c|d,这意味着与[abcd]完全相同。

为简单起见,您可以使用

(a|b|c|d)

String[] strs = str.split("'| ");

String[] strs = str.split("'|\\s");//to include all whitespaces

答案 7 :(得分:0)

您可以在正则表达式中使用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)