我有重的.txt文件。它包含这样的格式:
0 1 2 3 4 5 6 7 ... n
0 A, B, c, D, E, F, G, H,
1 AA, BB, CC, DD, EE, FF, GG, HH,
2
3
.
.
n
我想保存Map中的每一行。 例如,在第一行中:map< 0,A> 。 map< 1,B>,Map< 2,C>,... 然后我想在List中保存这些地图。例如,我想在List中保存100行。 例如,如果我写这个函数:“”list.get(1).get(4); “”我收到了“EE” 这意味着首先我要排成一排,然后我去4并重温“EE”。 你能指导我如何解决这个问题吗? 我读了一些关于“春季批次”的文章。它与我想要的相关 你能帮我解决一下如何解决这个问题吗?
public class spliter {
static int w=0;
private static HashMap<Integer,String> map = new HashMap<Integer,String>();
private static List<Map<Integer, String>> list=new ArrayList<Map<Integer,String>>();
public static void main(String[] args) throws IOException{
String string = null;
try {
BufferedReader reader = new BufferedReader(new FileReader("C:\\test.txt"));
while( (string = reader.readLine()) != null ) {
String[] parts = string.split(",");
int i=parts.length;
for(int j=0; j<i; j++){
map.put(j, parts[j]);
}
list.add(map);
w++;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:3)
使用扫描仪读取每一行,然后String.split(...)
分割每一行,可以解决这个简单的问题。类似的东西:
while line exists
read line into String using Scanner
split String using String#split(...)
use array from split to create a list
add above list to master list
end while
请注意,您可以在列表列表中包含此内容,而无需使用Map。 List<List<String>>
应该为你做。
我认为,对我们来说,给你这样的一般性建议更有启发性,然后看看你能用它做些什么。
我已经制作了社区Wiki,所以所有人都可以轻松地为这个答案做出贡献,所以没有人会因为赞成而获得声誉。
答案 1 :(得分:0)
我需要同样的东西,我是在考虑到你的情况下
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.*;
public class Spliter {
private static List<Map<String, Object>> list = new ArrayList<> ();
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\829784\\Desktop\\Repo\\Documentacion Repositorio\\test.txt"));
String line = "";
String firstline = reader.readLine();
while ((line = reader.readLine()) != null) {
Map < String, Object > map = new TreeMap < > ();
String[] partsfirstline = firstline.split(";");
String[] parts = line.split(";");
int i = parts.length;
for (int j = 0; j < i; j++) {
map.put(partsfirstline[j], parts[j]);
}
list.add(map);
}
System.out.println(list.get(0).values());
System.out.println(list.get(1).values());
}
}
答案 2 :(得分:-1)
你能为我们这样的事吗
public class ArrayReader {
public static void main(String[] args) {
List<List<String >> array = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new FileReader("file.txt"));){
String line;
while ((line=br.readLine())!=null)
array.add(Arrays.asList(line.split(",")));
} catch (IOException e) {
e.printStackTrace();
}
}
}