在Java中向数组添加整数
我必须创建一个程序,接受用户输入的数字,然后将它们添加到ArrayList中,然后以多种方式处理数据。数字必须大于或等于0。我在将用户输入添加到ArrayList时遇到问题,我的try-and-catch语句阻止了程序崩溃,但我无法向ArrayList添加任何内容,有人能告诉我在添加过程中我做错了什么吗? 这是我的密码:在Java中向数组添加整数,java,arrays,if-statement,for-loop,arraylist,Java,Arrays,If Statement,For Loop,Arraylist,我必须创建一个程序,接受用户输入的数字,然后将它们添加到ArrayList中,然后以多种方式处理数据。数字必须大于或等于0。我在将用户输入添加到ArrayList时遇到问题,我的try-and-catch语句阻止了程序崩溃,但我无法向ArrayList添加任何内容,有人能告诉我在添加过程中我做错了什么吗? 这是我的密码: import java.util.ArrayList; import java.util.Collections; public class SumElements exte
import java.util.ArrayList;
import java.util.Collections;
public class SumElements extends javax.swing.JFrame {
ArrayList <Integer> values = new ArrayList();
import java.util.ArrayList;
导入java.util.Collections;
公共类summelements扩展了javax.swing.JFrame{
ArrayList值=新的ArrayList();
private void addButtonActionPerformed(java.awt.event.ActionEvent evt){
尝试
{
//净输出区
outputArea.setText(空);
valueInput.setText(空);
outputLabel.setText(空);
//声明变量
int value=Integer.parseInt(valueInput.getText());
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i这是因为在调用Integer.parseInt(valueInput.getText())
之前,您将valueInput的文本设置为null
(使用valueInput.setText(null)
),这将抛出以下类型的NumberFormatException
:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
因此,只需删除行valueInput.setText(null);
这是因为在调用Integer.parseInt(valueInput.getText())
之前,您将valueInput
的文本设置为null
(使用valueInput.setText(null)
),这将抛出以下类型的NumberFormatException
:
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:542)
at java.lang.Integer.parseInt(Integer.java:615)
因此,只需删除行valueInput.setText(null);
就可以只解析那些表示数字的字符串。指向null的字符串变量肯定不表示数字。我建议用以下方式修改代码:
//declare variables
int value = Integer.parseInt(valueInput.getText());
//clear outputArea
valueInput.setText("");
outputLabel.setText("");
//validate input
if (value >= 0){
//add item to array
values.add(value);
//display values
Collections.sort(values);
for (int i = 0; i < values.size(); i++) {
outputArea.setText(outputArea.getText() + values.get(i) + "\n");
}
//声明变量
int value=Integer.parseInt(valueInput.getText());
//净输出区
valueInput.setText(“”);
outputLabel.setText(“”);
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i
您只能解析那些表示数字的字符串。指向null的字符串变量肯定不表示数字。我建议您以这种方式修改代码:
//declare variables
int value = Integer.parseInt(valueInput.getText());
//clear outputArea
valueInput.setText("");
outputLabel.setText("");
//validate input
if (value >= 0){
//add item to array
values.add(value);
//display values
Collections.sort(values);
for (int i = 0; i < values.size(); i++) {
outputArea.setText(outputArea.getText() + values.get(i) + "\n");
}
//声明变量
int value=Integer.parseInt(valueInput.getText());
//净输出区
valueInput.setText(“”);
outputLabel.setText(“”);
//验证输入
如果(值>=0){
//将项添加到数组
增加(价值);
//显示值
集合。排序(值);
对于(int i=0;i
Do//解析输入并将其保存到变量后清除输出区域!Do//解析输入并将其保存到变量后清除输出区域!您首先将valueInput
的文本设置为null
,然后读取它-您期望得到的结果是什么首先将valueInput
的文本设置为null
,然后读取它-您希望得到什么结果?