3 /**/ 17 39 82 108 117 8 25 47 58 63 72 99
我有这些号码。他们按下面的程序向现场宣读资料。
public class RaggedArray {
/**/
private int [][] rag;
/**/
public static void main ( String [] arg ) {
System.out.println( new RaggedArray() );
return;
}
/**/
public RaggedArray() {
initFromFile("rag.txt");
}
/**/
public String toString () {
/**/
String lf;
/*
* lf == line-feed character
*/
lf=System.lineSeparator();
/*
* Provide needed code here.
*/
}
/**/
private void initFromFile ( String fileName ) {
/**/
FileInput fi;
int numRows;
/**/
fi=new FileInput(fileName);
numRows=fi.readLineInt();
rag=new int [numRows][];
fi.readLine();
for ( int i=0; i<numRows; ++i ) rag[i]=fi.readLineInts();
fi.close();
/**/
return;
}
}到目前为止,这就是我所拥有的
rag=new int [4][]
for (int i=0; i<rag.length; ++i ) {在宽度为4的字段中,每个int都应该是对齐的。老实说,只有当代码中包含了数字时,我才知道如何做到这一点。但是数字在另一个文件里。有人知道吗?
发布于 2022-05-18 23:10:02
您可以将文件内容读取到一个数字数组中,然后使用该数组填充二维数组。
private int[] readNums(File file){
try(BufferedReader br = new BufferedReader(file)){
String line;
if(line = br.readLine() != null){
String split = line.split(" ");
int[] ints = new int[split.length()];
for(int i = 0; i<split.length(); i++){
ints[i] = Integer.parseInt(split[i]);
}
return ints;
}
} catch(Exception e){
//catch what's needed
}
return null;
}然后根据需要处理数字。例如,如果我正确地理解了如果要将它们放在宽度为4的二维数组的最右边,则可以这样做。
private int[][] fillArray(int[] input){
int[][] intArray = new int[4][input.length()];
for(int i=0; i<input.length(); i++){
intArray[4][i] = input[i];
}
return intArray;
}使用流或现代库也可以编写得更简单,但为了简单起见,我省略了它。如果你想让我知道我也可以加进去。
https://stackoverflow.com/questions/72296474
复制相似问题