如何使java用管道分割java

时间:2016-07-13 16:03:29

标签: java regex

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

  

|玛利亚|若昂|费尔南多||

但是当你在行尾有空格时会被忽略

我正在使用此regex split("\\|") 它应该是这样的:maria,joao,fernando,null 但保持这样:maria,joao,fernando

3 个答案:

答案 0 :(得分:0)

您只需要为分割字符串

添加双反斜杠
        String s = "|maria|joao|fernando||";
        String [] st =s.split("\\|");
        for (String string : st) {
            System.out.print(string+",");
        }

答案 1 :(得分:0)

您可以使用:

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

<强>步骤:

  1. 使用|方法替换开始和结束replaceAll,以maria|joao|fernando|作为split的输入。
  2. 然后使用split方法将其拆分为第二个参数-1,以返回空标记。

答案 2 :(得分:0)

Java 8解决方案

    List<String> params = Pattern
            .compile("\\|")
            .splitAsStream("|maria|joao|fernando||")
            .filter(e -> e.trim().length() > 0) // Remove spaces only or empty strings
            .collect(Collectors.toList());