【问题标题】:Java - Scanner : reading line of record separated by Pipe | as delimiterJava - 扫描器:读取由管道分隔的记录行|作为分隔符
【发布时间】:2012-02-28 22:15:07
【问题描述】:

我想读取一个文本文件,其中字段数据由分隔符 | 分隔。 (管道符号)。

但是发生了一些意想不到的事情:

这是我的代码:

doScannerTest ("Y~2011~GT~Nepal~Ganesh~Tiwari~N", "~");
doScannerTest("Y|2011|GT|Nepal|Ganesh|Tiwari|N", "|");

private static void doScannerTest(String recordLine, String delim) {
    java.util.Scanner lineScanner = new java.util.Scanner(recordLine);
    lineScanner.useDelimiter(delim);
    while (lineScanner.hasNext()) {
        System.out.println(lineScanner.next());
    }
}

delim ~ 工作正常,但是 |打印 recordLine 中的所有字符。

为什么用 delim 记录 |不管用 ?我无法更改框架代码(使用扫描仪)并使用字符串拆分。

【问题讨论】:

    标签: java java.util.scanner


    【解决方案1】:

    管道字符是保留的正则表达式字符,您需要对其进行转义。 例如你需要使用

    \\|
    

    把它放在你的代码中会得到下面的输出

    • 2011
    • GT
    • 尼泊尔
    • 象头神
    • 提瓦里语

    【讨论】:

    • 哦。我得到了它。用“[|\*]”代替|。问题得到了解决..谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 2014-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多