0

我想编写一个程序,它将字符串作为输入,在java文件中搜索字符串并输出行和它出现的位置。

我的主要问题是为我的结果创建一个“存储”。我不能使用列表,所以我想用二维数组 [] [] 来解决这个问题。但我不能只为每一行添加一个新的第一级元素,为字符串出现的每个位置添加一个二级元素。

我必须知道已经有多少个字符串来创建数组,不是吗?

我的主要想法:我需要通过读取一行input.readLine()并检查indexOf()子字符串是否在该行中。如果是,我保存位置 a 并继续搜索,直到它返回 -1。我继续,直到input.readLine返回null。如果这个概念是正确的,我只需要解决“存储”问题。

4

1 回答 1

0

您可以使用多图。

    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);

所以每个键都将映射到一个数组,该数组将存储行号和出现的位置。

于 2012-11-24T13:18:59.993 回答