繁体   English   中英

JAVA-带2个分隔符的分割字符串

[英]JAVA - split string with 2 delimiters

我有一个这样的文本文件:

fname, lname~email~info
fname, lname~email~info
fname, lname~email~info
fname, lname~~info

我需要将这些字符串拆分为1或2D数组。 我使用了以下代码:

  public void readFile() throws IOException {   
    BufferedReader br = new BufferedReader(new FileReader("contacts.txt"));
    try {
        StringBuilder sb = new StringBuilder();
        String line = br.readLine();

        while (line != null) {
            sb.append(line);
            sb.append(System.lineSeparator());
            line = br.readLine();
        }
        String everything = sb.toString();
        // store data into array
        for (String retval: everything.split("~")){
          System.out.println(retval);
        }

        // store data into array
        //String[] retval = everything.split("~");
        //System.out.println(retval[2]);


    } finally {
        br.close();
    }
  }

但是问题是读者没有拆分新行,最终给了我这个字符串

info
fname, lname

作为字符串(是空格)

如何在拆分的一个步骤内实现此目标? 并请注意,文本文件的最后一行没有电子邮件部分,因此拆分应该存储一个空字符串,而不是跳过它。

谢谢

您可以将其更改为

 everything.split("~|[\r\n]+");

编辑:

for (String retval: everything.split("~")){
    if(retval !=null && !retail.isEmpty) {
       System.out.println(retval);
    } else {
       System.out.Println("String is empty or null");
    }
}

我想说的是您希望拆分~和换行符序列。 以下应为您工作。

everything.split("~|[\r\n]+");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM