【发布时间】:2017-07-08 01:37:49
【问题描述】:
我正在创建一个简单的程序,它从 JTextArea 的输入中获取 2 个特定字符串。它需要找到一个非整数字符串然后找到一个整数。来自同一非整数字符串的所有值都将添加并在 JTextField 中显示结果。就像下面的例子一样,所有匹配“ax”的数字将被加在一起,最终结果将显示在标签“AX Box”下方的texfield中(25 + 5 = 30)
我的以下代码:
JTextField ax, bx, cx, dx;
int totalAX, totalBX, totalCX, totalDX;
String[] lines = textArea.getText().split("\\n"); // split lines
System.out.println(Arrays.toString(lines)); // convert each line to string
for (int i = 0; i < lines.length; i++) {
if (lines.contains("ax") {
// add each numbers.
// for example, 25 + 5
totalAX = totalAX + i;
ax.setText("Total: " +totalAX);
}
}
我的问题是程序找不到子字符串“ax”、“bx”等。这方面最好的方法是什么?我收到如下错误:
线程“AWT-EventQueue-0”java.lang.NumberFormatException 中的异常:对于输入字符串:“ax”
【问题讨论】:
-
由于
lines.contains("ax")这一行,这段代码不应该编译。lines变量是一个数组,它没有contains方法。 -
您还错误地计算了
totalAX。你这样做的方式,它只会计算包含"ax"字符串的行数(如果你写的是lines[i].contains("ax")而不是lines.contains("ax")。
标签: java arrays string jtextfield jtextarea