【发布时间】:2016-12-25 19:41:32
【问题描述】:
我想以某种方式将 JTextField 中的文本存储到数组中,然后对其求和。
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//fldi is the JTextField I want to get text from
int ii = Integer.parseInt(fldi.getText());
}
});
接下来我该怎么做?如何从那里拆分文本,例如,如果用户输入是“256”,我认为它应该存储在像“2”、“5”、“6”这样的数组中。
编辑: 所以在 Jake Miller 的帮助下,我得到了:
String input = fldi.getText();
int sum = 0;
int[] values = new int[input.length()];
for(int i = 0; i < input.length(); i++) {
int number;
if(input.substring(i, i+1).equals("-")) {
number = Integer.parseInt(input.substring(i, i+2));
} else {
number = Integer.parseInt(input.substring(i, i+1));
}
values[i] = number;
sum = sum + values[i];
}
fldwo.setText(Integer.toString(sum));
但是当我尝试对负数(如“-2”和“-1”值数组存储 4 个值“-2”、“2”、“-1”、“1”)时,最后的总和是0,但应该是-3。
【问题讨论】:
-
需要更多细节。数字总是个位数吗?等
-
不,它们可以有任何长度
-
不要马上解析。将输入存储到 String 中,使用循环使用 .substring() 遍历 String 中的每个字符,并解析每个单独的数字并存储到 int 数组中。
标签: java arrays jtextfield