【发布时间】:2019-02-25 06:32:10
【问题描述】:
我如何能够以格式获取文本文件中单词的位置 (后面的行号,单词第一个字符的位置)
例如
测试1测试2测试3
test4 test5 test6
test5 的位置是 (2,8)
【问题讨论】:
-
你有没有尝试过?
-
为什么test5的位置不是(2,7)?
标签: java bufferedreader filereader
我如何能够以格式获取文本文件中单词的位置 (后面的行号,单词第一个字符的位置)
例如
测试1测试2测试3
test4 test5 test6
test5 的位置是 (2,8)
【问题讨论】:
标签: java bufferedreader filereader
使用 Java 8,简单的解决方案是:-
List<String> lines = Files.lines(Paths.get("somefile.txt")).collect(Collectors.toList());
int lineNumber = IntStream.range(0,lines.size()).filter(i -> lines.get(i).contains("test5")).findFirst().getAsInt();
int charPosition = lines.stream().filter(l->l.contains("test5")).map(l-> l.indexOf("test5")).findFirst().get();
【讨论】:
逐行读取文件并放入ArraList。然后遍历列表并在列表的每个元素中搜索搜索文本的出现。然后,当您在元素中找到文本时,匹配行的行号将是 arrayInex +1 并且文本的位置将是在该行中找到文本的索引。希望这会有所帮助
【讨论】: