我想编写一个程序,它将字符串作为输入,在java
文件中搜索字符串并输出行和它出现的位置。
我的主要问题是为我的结果创建一个“存储”。 我不能使用列表,所以我想用2维数组[] []来解决这个问题。但我不能只为每一行添加一个新的第一级元素,而为每个位置附加第二级元素。
我必须知道有多少字符串可以创建数组,不是吗?
我的主要想法:我需要通过input.readLine()
读取一行,如果子串在该行中,则使用indexOf()
进行检查。如果是,我保存positiona并继续我的搜索,直到它返回-1。我继续直到input.readLine
返回null
。
如果这个概念是正确的,我只需要解决“存储”问题。
答案 0 :(得分:0)
您可以使用multimap。
HashMap<String, List<Integer>> map = new HashMap<String, List<Integer>>();
ArrayList<Integer> lineAndPosition = new ArrayList<Integer>();
lineAndPosition.add(1); //line number
lineAndPosition.add(23); //position number
map.put("key", lineAndPosition);
所以每个键都会映射到一个数组,该数组将存储出现的行号和位置。