【发布时间】:2020-06-28 16:55:02
【问题描述】:
我有这段代码,它获取一个写入 TextArea 的字符串并将其传递给一个方法(也允许多行):
String ad = ady.getText();
if (ad.matches("-?[0-9]+,-?[0-9]+") || ad.matches("-?[0-9]+,-?[0-9]+\n")) {
String[] parts = ad.split(",");
int num1 = Integer.parseInt(parts[0]);
int num2 = Integer.parseInt(parts[1]);
if (num1 <= cl.size() && num1 > 0) {
g.addCliente(nom, urba, street, ad);
} else {
JOptionPane.showMessageDialog(this, "Cliente inválido");
}
} else {
JOptionPane.showMessageDialog(this, "Formato inválido");
}
如您所见,它已经检查了字符串是否遵循某种格式“num1,num2”,并且 num1 必须小于 size。我如何使它检查 TextArea 中每一行的相同格式,然后将其传递为:“Num1,Num2\nNum1,Num2\nNum1,Num2”以及用户在 TextArea 中写入的所有行?
如您所见,我尝试在 ("-?[0-9]+,-?[0-9]+") 的末尾添加 \n 并使其成为 OR if,但它不起作用.
【问题讨论】:
-
您的问题到底是什么?您的标题要求验证一行是否有两个用逗号连接的数字。您的代码似乎完成了这项任务。那你为什么要发布这个问题?
-
你读过代码下面的东西吗?
-
是的,我做到了。不清楚。示例:“然后通过它”,什么通过什么在哪里?正在尝试生成文本或解析文本?很难对这个问题做出正面或反面。我什至不明白你为什么在简单地解析为数字时使用正则表达式。