目前我正在尝试以这种格式阅读一些基本单元格:
+-------+-------+
| | |
+-------+-------+
现在我需要获取单元格内容的字符串表示并将其发送到另一个方法。问题是单元格没有预定义的长度。我正在从文件中读取这些,所以我最简单的选择应该是只使用我已经设置的扫描仪。问题是,我真的不知道这种情况如何。
我有一种强烈的感觉,我需要以某种方式使用该模式,但我完全不知道如何去做。
我也可以以某种方式建立它,但这让我感到非常缓慢。
目前我正在尝试以这种格式阅读一些基本单元格:
+-------+-------+
| | |
+-------+-------+
现在我需要获取单元格内容的字符串表示并将其发送到另一个方法。问题是单元格没有预定义的长度。我正在从文件中读取这些,所以我最简单的选择应该是只使用我已经设置的扫描仪。问题是,我真的不知道这种情况如何。
我有一种强烈的感觉,我需要以某种方式使用该模式,但我完全不知道如何去做。
我也可以以某种方式建立它,但这让我感到非常缓慢。
请参阅扫描仪的 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