Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用管道分割java_Java_Regex - Fatal编程技术网

如何使用管道分割java

如何使用管道分割java,java,regex,Java,Regex,我必须将一个字符串分隔成一个可能包含空格的数组,例如 |玛丽亚|乔|费尔南多|| 但当在行的末尾有空格时,它将被忽略 我使用的是这个regex分割(\\\\124;”) 应该是这样的:maria,joao,fernando,null 但仍然是这样:玛丽亚、乔奥、费尔南多您只需在拆分字符串中添加两个反斜杠即可 String s = "|maria|joao|fernando||"; String [] st =s.split("\\|"); for

我必须将一个字符串分隔成一个可能包含空格的数组,例如

|玛丽亚|乔|费尔南多||

但当在行的末尾有空格时,它将被忽略

我使用的是这个
regex分割(\\\\124;”)
应该是这样的:
maria,joao,fernando,null

但仍然是这样:
玛丽亚、乔奥、费尔南多

您只需在拆分字符串中添加两个反斜杠即可

        String s = "|maria|joao|fernando||";
        String [] st =s.split("\\|");
        for (String string : st) {
            System.out.print(string+",");
        }
您可以使用:

String str = "|maria|joao|fernando||";
String[] tokens = str.replaceAll("^[|]|[|]$", "").split("[|]", -1));
//=> [maria, joao, fernando, ""]
步骤:

  • 使用
    replaceAll
    方法替换开头和结尾
    ,将
    maria | joao | fernando |
    作为
    拆分的输入
  • 然后使用
    split
    方法将其拆分,第二个参数为
    -1
    ,以返回空令牌
  • Java8解决方案
    List params=Pattern
    .compile(“\\\\”)
    .splitAsStream(“| maria | joao | fernando | |”)
    .filter(e->e.trim().length()>0)//仅删除空格或空字符串
    .collect(Collectors.toList());
    
    我为语言错误感到抱歉,我是巴西学生
        List<String> params = Pattern
                .compile("\\|")
                .splitAsStream("|maria|joao|fernando||")
                .filter(e -> e.trim().length() > 0) // Remove spaces only or empty strings
                .collect(Collectors.toList());