尝试将文件中的数字添加到数组中,然后在java中以格式化列打印该数组
我是编程新手,在获取一个包含数字列表的文件并将其转换为一个整数数组时遇到了一些问题,然后我可以在格式化列(5行10列)中打印这些整数。我想我使用ArrayList正确地导入了,但是当我尝试打印列时,我遇到了问题。我想我需要使用for循环来打印列,但我不是100%确定。任何帮助都将不胜感激!这是我的密码:尝试将文件中的数字添加到数组中,然后在java中以格式化列打印该数组,java,arrays,formatting,file-import,Java,Arrays,Formatting,File Import,我是编程新手,在获取一个包含数字列表的文件并将其转换为一个整数数组时遇到了一些问题,然后我可以在格式化列(5行10列)中打印这些整数。我想我使用ArrayList正确地导入了,但是当我尝试打印列时,我遇到了问题。我想我需要使用for循环来打印列,但我不是100%确定。任何帮助都将不胜感激!这是我的密码: import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; i
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class Numbers {
private List < Integer > data = new ArrayList < Integer > (); //Create ArrayList
public static void main(String[] args) {
String filename = "C/Users/s/Desktop/file4/Input.txt";
Numbers rfe = new Numbers();
rfe.readFile(filename);
}
private void readFile(String name) {
String input;
try (BufferedReader reader = new BufferedReader(new FileReader(name))) {
while ((input = reader.readLine()) != null) {
data.add(Integer.parseInt(input)); //Add each parsed number to the arraylist
int[] i = input;
for (i; i < null; i++) {
System.out.format("%20s, %10s", i);
}
}
} catch (FileNotFoundException fnfe) {
} catch (IOException ioe) {
} catch (Exception ex) { // Not required, but a good practice
ex.printStackTrace(); //Usually good for general handling
}
}
}
代码中有两个问题。所有这些在这一部分:
while ((input = reader.readLine()) != null) {
data.add(Integer.parseInt(input)); //Add each parsed number to the arraylist
int[] i = input;
for (i; i < null; i++) {
System.out.format("%20s, %10s", i);
}
}
在您想要打印它之后,您看到的错误是因为您进行了错误的赋值int[]i=input;算了吧,你不需要它
您需要在列表中循环以打印所有数字
for (int i=0; i<data.size(); i++){
System.out.format("%20s, %10s", i); //here is your another problem
}
或
首先,您必须读取文件,然后将其添加到Arraylist。现在,您可以轻松地显示该文件,从Arraylist中获取每个值,然后逐个将其添加到多维数组中
ArrayList<Integer> data = new ArrayList<Integer>();
String numberString="";
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
/* while ((numberString = br.readLine()) != null) {
}*/
numberString=br.readLine();
System.out.println(numberString);
String[] numbersArray = numberString.split(" ");
for(int i=0;i<numbersArray.length;i++){
//System.out.println("array value-->"+numbersArray[i]);
data.add(Integer.parseInt(numbersArray[i]));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
在下面,我写下并解释你试图做的事情
public static void main(String[] args) throws IOException {
File file = new File("C/Users/s/Desktop/file4/Input.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
List<Integer> intArr = new ArrayList<Integer>();
while ((line = br.readLine()) != null) { //reads the Input.txt line by line
intArr.add(Integer.valueOf(line)); //adds int values(read from txt file) into ArrayList
System.out.format("%10s", Integer.valueOf(line)); //it can print in your format while reading the integers
}
for (Integer integer : intArr) {
System.out.format("%10s", integer); // or prints in a separate loop.
}
}
}
您遇到的具体问题是什么?在将代码发布到StackOverflow之前格式化代码将是一个巨大的优势。这是我在线程main java.lang中收到异常的错误。错误:未解决的编译问题:类型不匹配:无法从字符串转换为int[]语法错误,insert AssignmentOperator Expression to complete for init参数类型int[]的运算符<未定义,null类型不匹配:无法从int[]转换为int at Numbers.readFileNumbers.java:28 at Numbers.mainNumbers.java:16将其添加到问题中!你的问题非常简单,你创建了一个整数列表,将数字添加到列表中,但你试图从另一个位置获取数字int[]i,以便在列表外循环,同时你应该阅读一些感谢!这帮了大忙!!
System.out.format("%20s, %10s", i, i); //twice
System.out.format("%10s", i); //just once
ArrayList<Integer> data = new ArrayList<Integer>();
String numberString="";
try {
BufferedReader br = new BufferedReader(new FileReader(fileName));
/* while ((numberString = br.readLine()) != null) {
}*/
numberString=br.readLine();
System.out.println(numberString);
String[] numbersArray = numberString.split(" ");
for(int i=0;i<numbersArray.length;i++){
//System.out.println("array value-->"+numbersArray[i]);
data.add(Integer.parseInt(numbersArray[i]));
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
public static void main(String[] args) throws IOException {
File file = new File("C/Users/s/Desktop/file4/Input.txt");
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String line;
List<Integer> intArr = new ArrayList<Integer>();
while ((line = br.readLine()) != null) { //reads the Input.txt line by line
intArr.add(Integer.valueOf(line)); //adds int values(read from txt file) into ArrayList
System.out.format("%10s", Integer.valueOf(line)); //it can print in your format while reading the integers
}
for (Integer integer : intArr) {
System.out.format("%10s", integer); // or prints in a separate loop.
}
}
}