我是解析的新手(也是 Java 的新手),所以我只是想确保我正确地概念化了这一点。
我编写了一个程序,允许用户将文本粘贴到文本字段中,然后单击“解析数据”按钮。此按钮解析文本以获取两条数据:名称和数字。
文本数据一般由用户以这种形式粘贴:
john 48915
beth 10431
frank 10112
anne 34887
taserface 90090
bill 56448
我正在使用正则表达式“^\d+\t.*\d+$”来检测模式,在模式确认后,我的解析数据代码执行以下操作:
Scanner parser = new Scanner(inputText);
parser.useDelimiter("\\n");
while (parser.hasNext()) {
String nextToken = parser.next();
String name = nextToken.trim();
// how do I get the number?
您会注意到 \n 分隔符,它在换行符处解析数据。这会将数据分成几行,但不会将每一行分成两个单独的数据点。我需要分别获取名称和号码。
我相信我应该使用空格分隔符,但我不确定我是否应该在一两个不同的步骤中执行此操作。我相信,这种困惑源于我对扫描仪如何工作的有限理解。但是在查看了 Java 文档之后,我仍然不确定。
电流输出:
john 48915
beth 10431
frank 10112
等等
预期输出:
john
48915
beth
10431
等等
我应该做两个不同的解析循环,还是可以在同一个过程中完成工作?