我有一个文本文档,其中包含带有这些值的5x5表
5 5
39 95 99 56 41
88 8 1 48 75
3 58 13 54 80
92 72 74 25 86
30 38 3 21 2
我必须将它们添加到数组中,并显示最低值(即1)并告诉最低值的位置(第1行第2列)。
public static void main(String[] args)
{
Scanner input;
File fileIn = new File("src/array2d/array2dtest1.txt");
System.out.println(fileIn.getAbsolutePath());
int[][] array = new int[5][5];
for(int row = 0;row<array.length;row++) {int[] column = array[row];
{
for(int columnIndex = 0; columnIndex<column.length; columnIndex++);
}
}
try
{
input = new Scanner(fileIn);
}
catch (FileNotFoundException e)
{
System.out.println(fileIn.getName() + " is not found.");
return;
}
input.close();
}
}
答案 0 :(得分:0)
此代码实际上将您的输入存储到数组中。
public static void main(String[] args) {
Scanner input;
File fileIn = new File("src/array2d/array2dtest1.txt");
System.out.println(fileIn.getAbsolutePath());
int[][] array = new int[5][5];
try
{
input = new Scanner(fileIn);
String values = input.nextLine();
String[] value = values.split("\\s+");
int index = 0;
for(int row = 0;row < 5;row++)
{ index = row;
for(int col = 0 ; col < 5; col++){
array[row][col] = Integer.parseInt(value[index*5 + col]);
}
}
}
catch (FileNotFoundException e)
{
System.out.println(fileIn.getName() + " is not found.");
return;
}
input.close();
}
答案 1 :(得分:0)
使用来自@ vikasn91的答案,我编辑了一下以正确地将值分配给数组,找到数组中的最小数字及其位置:
try {
input = new Scanner(fileIn);
int lowestCol = 0;
int lowestRow = 0;
int lowest = 0;
for (int row = 0; row < 5; row++) {
String values = input.nextLine();
String[] value = values.split("\\s+");
for (int col = 0; col < 5; col++) {
array[row][col] = Integer.parseInt(value[col]);
if (row == 0 && col == 0) {
lowest = array[row][col];
} else if (array[row][col] < lowest) {
lowestCol = col;
lowestRow = row;
lowest = array[lowestRow][lowestCol];
}
}
}
System.out.println("Lowest number: " + lowest);
System.out.println("Found in row: " + lowestRow + ", col: " + lowestCol);
} catch (FileNotFoundException e) {
System.out.println(fileIn.getName() + " is not found.");
return;
}
input.close();
答案 2 :(得分:0)
public static void main(String[] args)
{
Scanner input;
File fileIn = new File("array2dtest1.txt");
System.out.println(fileIn.getAbsolutePath());
try
{
input = new Scanner(fileIn);
int row = input.nextInt();
int column = input.nextInt();
int min = Integer.MAX_VALUE;
int val;
int minR=0,minC=0;
for(int i=0;i<row;i++){
for(int j=0;j<column;j++){
val = input.nextInt();
if(val<min){
min = val;
minR = i;
minC = j;
}
}
}
System.out.println("Min Value is " + min + "\nat position (" + minR + "," + minC + ")" );
}
catch (FileNotFoundException e)
{
System.out.println(fileIn.getName() + " is not found.");
return;
}
input.close();
}
答案 3 :(得分:0)
如果您正在使用扫描仪,则无需直接拆分或解析整数。默认分隔符是空格。
Scanner s = new Scanner(new FileReader("src/array2d/array2dtest1.txt"));
int numRows = s.nextInt();
int numCols = s.nextInt();
int[][] array = new int[numRows][numCols];
int least = Integer.MAX_VALUE;
int leastRow = -1;
int leastCol = -1;
for(int r = 0; r < numRows; r++) {
for(int c = 0; c < numCols; c++) {
if((array[r][c] = s.nextInt()) < least) {
leastRow = r;
leastCol = c;
}
}
}