Corting 二维数组和复制字符串
Corting a two-dimensional array and copying strings
我编写了用文件中的数据填充二维数组的代码。
public static Collection getBrowser() {
return Arrays.asList(readFromFile("arr.txt"));
}
private static Object[][] readFromFile(String filePath) {
try {
InputStream inputStream = new FileInputStream(filePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuilder string = new StringBuilder();
while (reader.ready()) {
string.append(reader.readLine());
string.append(System.getProperty("line.separator"));
}
reader.close();
String[] lineSplit = string.toString().split(System.getProperty("line.separator"));
Object[][] result = new Object[lineSplit.length][];
for (int i = 0; i < lineSplit.length; i++) {
String line = lineSplit[i];
String[] itemSplit = line.split(",");
result[i] = new Object[itemSplit.length];
for (int j = 0; j < itemSplit.length; j++) {
if (j == 0) {
result[i][j] = Integer.valueOf(itemSplit[j]);
} else {
result[i][j] = itemSplit[j];
}
System.out.print(result[i][j]+" ");
}
//System.out.println();
}
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
示例文件
1000, a, a, x
1000, x, x, y
1200, c, c, y
请告诉我,如何通过将每一行扫入一个单独的数组来按最后一个值对这个数组进行排序
Arr1
1000, a, a, x
Arr2
1000, x, x, y
1200, c, c, y
到目前为止你的方向很好,所以你可以读取文件...下一步你想做什么?
对我来说,它看起来并不像二维数组,而更像是对象数组。定义对象来包装您的数据并使用 Comparator.
实现 Comparator 后,您可以调用 Arrays.sort(array, comparator)
。
在这里查看一些帮助:How to use Comparator in Java to sort
不需要拆分成两个数组分别排序,等你对comparator比较熟悉后,一口气搞定...
我编写了用文件中的数据填充二维数组的代码。
public static Collection getBrowser() {
return Arrays.asList(readFromFile("arr.txt"));
}
private static Object[][] readFromFile(String filePath) {
try {
InputStream inputStream = new FileInputStream(filePath);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
StringBuilder string = new StringBuilder();
while (reader.ready()) {
string.append(reader.readLine());
string.append(System.getProperty("line.separator"));
}
reader.close();
String[] lineSplit = string.toString().split(System.getProperty("line.separator"));
Object[][] result = new Object[lineSplit.length][];
for (int i = 0; i < lineSplit.length; i++) {
String line = lineSplit[i];
String[] itemSplit = line.split(",");
result[i] = new Object[itemSplit.length];
for (int j = 0; j < itemSplit.length; j++) {
if (j == 0) {
result[i][j] = Integer.valueOf(itemSplit[j]);
} else {
result[i][j] = itemSplit[j];
}
System.out.print(result[i][j]+" ");
}
//System.out.println();
}
return result;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
示例文件
1000, a, a, x
1000, x, x, y
1200, c, c, y
请告诉我,如何通过将每一行扫入一个单独的数组来按最后一个值对这个数组进行排序
Arr1
1000, a, a, x
Arr2
1000, x, x, y
1200, c, c, y
到目前为止你的方向很好,所以你可以读取文件...下一步你想做什么?
对我来说,它看起来并不像二维数组,而更像是对象数组。定义对象来包装您的数据并使用 Comparator.
实现 Comparator 后,您可以调用 Arrays.sort(array, comparator)
。
在这里查看一些帮助:How to use Comparator in Java to sort
不需要拆分成两个数组分别排序,等你对comparator比较熟悉后,一口气搞定...