Java 如何从文本文件中创建一个填充行数的数组?
我需要做的是创建一个数组,该数组需要用文本文件中的行数填充,所以假设文本文件有5行,那么该数组将是:array[5] 我有以下代码:Java 如何从文本文件中创建一个填充行数的数组?,java,arrays,Java,Arrays,我需要做的是创建一个数组,该数组需要用文本文件中的行数填充,所以假设文本文件有5行,那么该数组将是:array[5] 我有以下代码: try{ LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); int linenumber = 0; int primero = 0; String tmp = new String();
try{ LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt"))); int linenumber = 0; int primero = 0;
String tmp = new String();
tmp=lnr.readLine();
while(tmp != null)
{
linenumber++;
JOptionPane.showMessageDialog (null, (tmp));
tmp=lnr.readLine();
} int mitad=(0+linenumber)/2; int [] array = new int[linenumber];
我想做的是按照代码最后一行的方式创建数组,我尝试这样做,但是如果我尝试打印如下内容:
JOptionPane.showMessageDialog (null, "Number at half: " + array[mitad]);
仅显示0:
有人能告诉我如何以正确的方式填充数组吗请您从不在代码中填充int数组,int数组元素的默认值为0。 您可以尝试使用ArrayList动态添加数字,然后使用它填充数组:
try {
LineNumberReader lnr = new LineNumberReader(new FileReader(new File("lista de numeros.txt")));
int linenumber = 0;
int primero = 0;
ArrayList<Integer> tmpArrayList = new ArrayList();
String tmp = new String();
tmp = lnr.readLine();
while (tmp != null) {
tmpArrayList.add(Integer.parseInt(tmp));
linenumber++;
JOptionPane.showMessageDialog(null, (tmp));
tmp = lnr.readLine();
}
int mitad = (0 + linenumber) / 2;
int[] array = new int[linenumber];
for (int i = 0; i < array.length; i++) {
array[i] = tmpArrayList.get(i).intValue();
}
试试看{
LineNumberReader lnr=新的LineNumberReader(新文件阅读器(新文件(“lista de numeros.txt”));
int linenumber=0;
int primero=0;
ArrayList tmpArrayList=新建ArrayList();
字符串tmp=新字符串();
tmp=lnr.readLine();
while(tmp!=null){
添加(Integer.parseInt(tmp));
linenumber++;
showMessageDialog(null,(tmp));
tmp=lnr.readLine();
}
int-mitad=(0+行号)/2;
int[]数组=新int[linenumber];
for(int i=0;i
使用ArrayList,您甚至不需要计算行号。只要在while循环之后随时使用tmpArrayList.size()
。但是请注意,,您的文件中应该只有整数,没有字符串!否则它将无法工作。
或者,您也可以从第二个循环开始再次读取所有行以填充数组。但这不是最好的方法,因为在本例中,您需要读取文件两次:一次用于计算用于实例化数组的行数,一次用于填充数组。您需要将元素(在本例中为
tmp
)添加到int[]数组
array[mitad]
是0
,因为这是int
类型变量的默认值。