【发布时间】:2017-12-08 00:51:09
【问题描述】:
所以,我目前有一个文件,我正在尝试使用一个命令来搜索该文本中包含我要查找的内容的所有行。
这是我目前所拥有的:
public class finder
{
public static void main(String args[]) throws FileNotFoundException
{
Scanner console = new Scanner (System.in);
String search = console.nextLine();
Scanner s = new Scanner(new File("C:\\Users\\xxxxx\\Desktop\\test.txt"));
while (s.hasNextLine())
{
String temp = s.nextLine();
if (temp.contains(search))
{
System.out.println(temp);
}
}
} //Main
} //Finder
文字是这样的
Bob has a cat
Bob has a dog
Chris has a cat
如果我搜索“猫”,它会打印出“鲍勃有一只猫”和“克里斯有一只猫”。 如果我搜索“Bob”,它会打印出“Bob has a cat”和“Bob has a dog”。
所以我不知道在 while 循环中放什么。我知道你必须对 indexOf 字符串命令做一些事情,但我不确定如何实现它。
【问题讨论】:
-
为什么需要 indexOf?如果你不关心单词边界,你可以做 string.contains
-
另外,您确定要在扫描的文件内容前有一个空行吗?
-
所以只需遍历每一行并打印出包含给定单词的行。
-
请至少自己努力弄清楚。发布所有不适用的代码并要求我们做实际工作并不是学习东西的好方法。我们很乐意提供帮助,但您至少应该尝试做一些事情。一个空的
while循环和这里发生了什么?不是努力。 -
感谢您的编辑,与您的预期相比,现在产生的输出是什么?
标签: java string file substring