Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/55.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_Java Io - Fatal编程技术网

如何在Java中从文件中拆分字符串

如何在Java中从文件中拆分字符串,java,java-io,Java,Java Io,我在file.txt文件中有一行,|a | b | c | d |,我想提取之间的值(结果a,b,c,d) 我怎样才能做到这一点?来自 围绕给定正则表达式的匹配项拆分此字符串。 该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串 例如,字符串“boo:and:foo”使用以下表达式生成以下结果: 正则表达式结果 :{“boo”,“and”,“foo”} o{“b”、“”、“:和:f”} 使用以下代码: String[] arr = "|

我在file.txt文件中有一行,
|a | b | c | d |
,我想提取
之间的值(结果
a,b,c,d
) 我怎样才能做到这一点?

来自

围绕给定正则表达式的匹配项拆分此字符串。 该方法的工作原理类似于使用给定表达式和零限制参数调用双参数split方法。因此,结果数组中不包括尾随的空字符串

例如,字符串“boo:and:foo”使用以下表达式生成以下结果:

正则表达式结果
:{“boo”,“and”,“foo”}
o{“b”、“”、“:和:f”}

使用以下代码:

String[] arr = "|a|b|c|d|".split("\\|");
管道(
|
)是正则表达式语言中的一个特殊字符(split方法将正则表达式作为参数),因此需要转义

您需要这样使用:
String[]str=“|a | b | c | d |”。split(\\\\”

鉴于此:

 String[] str = "|a|b|c|d|".split("\\|");
    for(String string : str)
        System.out.println(string);
将产生:

  //The first string will be empty, since your string starts with a pipe.
a
b
c
d

String[]array=filecontent.split(“|”)转义只需2个反斜杠it@singhakash是的,对不起,我的错。现在已修复。请您给出您的答案,以解释此代码为什么回答此问题?代码唯一的答案是,因为它们不教解决方案。@DavidPostill谢谢,已更新
public static void main(String[] args) throws IOException {

    FileReader fr = new FileReader(new File(
            "file.txt"));
    BufferedReader br = new BufferedReader(fr);
    String st;
    StringBuffer sb = new StringBuffer();
    st = br.readLine();
    if (st != null) {
        StringTokenizer strTkn = new StringTokenizer(st, "|");
        while (strTkn.hasMoreElements()) {
            sb.append(strTkn.nextElement());
        }
    }

    System.out.println(sb);

}