我有一个文字文件,里面有很多单词。他们用两个三个词组成':',并通过''与其他群体分开。
有100个小组。
例如:
程序员:网站设计师:系统 管理员。生物学家:药剂师:化学老师。
点前的所有单词都是单个组。
我的目的是将所有单词组添加到二维数组[10] [10](整个大小为100个元素)。
我的代码:
public static void main(String[] args) throws FileNotFoundException {
String[][] array = new String[10][10];
try (BufferedReader br = new BufferedReader(
new FileReader("C:\\Users\\Alexey\\eclipse-workspace\\Plugin\\src\\MatProList.txt"))) {
for (int i = 0; i < 10; i++) {
for (int c = 0; c < 10; c++) {
while ((char)br.read() != '.') {
array[i][c] = array[i][c] + (char)br.read();
}
}
if (br.read() == -1) {
break;
}
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
}
}
这里有什么问题?请帮忙。
答案 0 :(得分:0)
即使我更喜欢自己使用ListArray,我也会这样做。
public static void main(String[] args) {
String[][] groups = new String[10][10];
try {
BufferedReader reader = new BufferedReader(new FileReader("somefile"));
String line = reader.readLine();
int row = 0;
int column = 0;
while (line != null) {
String[] groupArray = line.split("\\.");
for (int i = 0; i < groupArray.length; i++) {
groups[row][column] = groupArray[i];
column++;
if (column > 9) {
column = 0;
row++;
}
if (row > 9) {
//throw exception or just ignore further groups
}
}
line = reader.readLine();
}
} catch (IOException e) {
//TODO: handle exception
}
}
关于你的代码,主要的问题是你的while循环,你读取两个char但只使用一个(首先在循环标题中,然后在分配时)。
如果你想通过char读取你的char,我会像这样改变while循环
StringBuffer nextGroup = new StringBuffer();
char nextChar = br.read();
while (nextChar != '.' && nextChar != -1) {
nextGroup.append(nextChar);
nextChar = br.read();
}
array[i][c] = nextGroup.toString();