2

目前我正在尝试以这种格式阅读一些基本单元格:

+-------+-------+
|       |       |
+-------+-------+

现在我需要获取单元格内容的字符串表示并将其发送到另一个方法。问题是单元格没有预定义的长度。我正在从文件中读取这些,所以我最简单的选择应该是只使用我已经设置的扫描仪。问题是,我真的不知道这种情况如何。

我有一种强烈的感觉,我需要以某种方式使用该模式,但我完全不知道如何去做。

我也可以以某种方式建立它,但这让我感到非常缓慢。

4

1 回答 1

1

请参阅扫描仪的 javadoc,它有一个示例:

String input = "1 fish 2 fish red fish blue fish";
 Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
 System.out.println(s.nextInt());
 System.out.println(s.nextInt());
 System.out.println(s.next());
 System.out.println(s.next());
 s.close(); 

打印以下输出:

 1
 2
 red
 blue 

好吧,您可以|用作分隔符。

编辑:|用作分隔符,您应该转义它,使用\\s*\\|\\s*\\s*[|]\\s*。如果您|按原样使用,那么您将只获得第一个 value1和 exception InputMismatchException

请参见下面的程序和输出:

public class Test {
    public static void main(String[] args) {
        String input = "1 | 2 | red | blue |";
        Scanner s = new Scanner(input).useDelimiter("\\s*\\|\\s*"); // or use "\\s*[|]\\s*"
        System.out.println(s.nextInt());
        System.out.println(s.nextInt());
        System.out.println(s.next());
        System.out.println(s.next());
        s.close();
    }
}

输出 :

1
2
red
blue
于 2012-10-20T04:57:16.213 回答