在Java中搜索文件中的子字符串、返回行和位置
我想写一个程序,它以一个字符串作为输入,在在Java中搜索文件中的子字符串、返回行和位置,java,substring,bufferedreader,Java,Substring,Bufferedreader,我想写一个程序,它以一个字符串作为输入,在java文件中搜索该字符串,并输出该字符串所在的行和位置 我的主要问题是为我的结果创建一个“存储”。 我不能使用列表,所以我想用二维数组[]来解决这个问题。但我不能只为每一行添加一个新的第一级元素,为字符串出现的每个位置添加一个第二级元素 我必须知道有多少字符串可以创建数组,不是吗 我的主要想法是:我需要通过input.readLine()读入一行,并使用indexOf()检查子字符串是否在该行中。如果是,则保存位置A并继续搜索,直到返回-1。我继续,直
java
文件中搜索该字符串,并输出该字符串所在的行和位置
我的主要问题是为我的结果创建一个“存储”。
我不能使用列表,所以我想用二维数组[]来解决这个问题。但我不能只为每一行添加一个新的第一级元素,为字符串出现的每个位置添加一个第二级元素
我必须知道有多少字符串可以创建数组,不是吗
我的主要想法是:我需要通过input.readLine()
读入一行,并使用indexOf()
检查子字符串是否在该行中。如果是,则保存位置A并继续搜索,直到返回-1。我继续,直到input。readLine
返回null
。
如果这个概念是正确的,我只需要解决“存储”问题。您可以使用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);
HashMap map=newhashmap();
ArrayList lineAndPosition=新的ArrayList();
线性和位置。添加(1)//行号
线性和位置。添加(23)//职位编号
地图放置(“键”、线和位置);
所以每个键将映射到一个数组,该数组将存储行号和发生位置 你想只存储位置吗?你可以用必要的细节创建自己的类,然后创建该类的ArrayList!如果主要目的只是打印行位置和字符串,那么是否需要“存储”实际值?为什么不在找到匹配项时将其打印出来呢?或者您甚至可以使用HashMap,将key作为行号,value作为位置。当然,只有在每行只需要存储一个位置时,这才有效。