我正在阅读一个文件并希望将文件存储到某些单词,在此示例中为“是”进入HashMap of < Integer, document >.
但是我被卡住了HashMap
,这是我的列车想法。
BufferedReader in = new BufferedReader(new FileReader("filename.txt"));
String line;
int i = 0;
while ((line = in.readLine()) != null) {
if (!line.startwith("yes");{
//add line to hashMap[i]
i++;
}
System.out.println(hashMap[i]);
}
如何在HashMap
之前将文字添加到“是”?
答案 0 :(得分:1)
使用HashMap存储具有唯一键的键值对。
你当然可以在某事上分歧:
split_line = line.split(delimiter);
并存储:
\** I am being unsafe here. You should probably check for null and type. *\
hashmap.put( new Integer(split_line[0]), split_line[1]);
但这是你想要做的吗?
答案 1 :(得分:0)
如果Map中的键将是0到n之间的整数,那么您不需要地图而是List。
List<String> goodWords = new ArrayList<String>();
while ((line = in.readLine()) != null) {
String[] words = line.split(" ");
for (String str : words) {
if (!"yes".equals(str)) {
goodWords.add(str);
}
}
}
答案 2 :(得分:0)
我真的不明白你想要在HashMap中存储什么。你能更具体一点吗?
以下是如何使用扫描仪进行操作 - 我更喜欢这一点,然后简单地逐行解析。
public class Main {
public static void main(String[] args) throws FileNotFoundException {
StringBuilder responseBuilder = new StringBuilder();
File file = new File("/Users/eugene/Desktop/MyFile.txt");
Scanner scanner = new Scanner(file);
scanner.useDelimiter("yes");
while(scanner.hasNext()){
responseBuilder.append(scanner.next());
break;
}
System.out.println(responseBuilder.toString());
}
}