如何使用split函数在'\'之间拆分字符串?

Man*_*dye 1 java regex string split

我是java语言的新手.我想在字符串库中使用split函数将字符串"mandar\jitendra\sadye"拆分为3个字符串"mandar","jitendra"和"sadye".我用来分割字符串的程序如下:

public class string 
{
    public static void main(String[] args) 
    {
        String mandar="mandar\\jitendra\\saye";
        String[] words=mandar.split("[\\]");
        for(int a=0;a<words.length;a++)
        {
            System.out.println(words[a]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是这个程序给出了这个错误命令提示符中的错误图像 如果我用'\ 0'之类的任何其他转义序列替换'\',那么程序运行就好了'\'替换为'\ 0'时的输出 我已经尝试使用['\'] [] [\] ['\'] [\],但这些令牌都不适用于我.那么是否有一些特殊的方法可以将字符串拆分为"\"?

The*_*ind 5

你需要\正确逃脱.一次为java,再次为regex引擎.

    String mandar="mandar\\jitendra\\saye";
    String[] words=mandar.split("\\\\");
    for(int a=0;a<words.length;a++)
    {
        System.out.println(words[a]);
    }
Run Code Online (Sandbox Code Playgroud)

O/P:

mandar
jitendra
saye
Run Code Online (Sandbox Code Playgroud)

我想到的另一种方法是使用Pattern.quote():

public static void main(String[] args) {
    String mandar="mandar\\jitendra\\saye";
    String[] words=mandar.split(Pattern.quote("\\"));
    for(int a=0;a<words.length;a++)
    {
        System.out.println(words[a]);
    }
}
Run Code Online (Sandbox Code Playgroud)

O/P:

mandar
jitendra
saye
Run Code Online (Sandbox Code Playgroud)