【发布时间】:2016-02-29 09:25:39
【问题描述】:
我正在研究学生注册系统。我有一个包含学生姓名、学生编号和学生成绩的文本文件存储在每一行中,例如:
name1,1234,7
name2,2345,8
name3,3456,3
name4,4567,10
name5,5678,6
如何搜索一个名字然后返回整个句子?查找名称时没有任何匹配项。
我当前的代码如下所示:
public static void retrieveUserInfo()
{
System.out.println("Please enter username"); //Enter the username you want to look for
String inputUsername = userInput.nextLine();
final Scanner scanner = new Scanner("file.txt");
while (scanner.hasNextLine()) {
final String lineFromFile = scanner.nextLine();
if(lineFromFile.contains(inputUsername)) {
// a match!
System.out.println("I found " +inputUsername+ " in file " ); // this should return the whole line, so the name, student number and grade
break;
}
else System.out.println("Nothing here");
}
【问题讨论】:
-
语言 = Java?如果是这样,请包含在标签中。此外,
lineFromFile似乎已经包含您的整行,所以只需打印它.... -
添加了标签并打印了 lineFromFile 但仍然找不到匹配项。这可能与文本文件中的逗号分隔有关吗?
-
如果在
if语句之后添加System.out.println(lineFromFile);,会得到什么输出? -
while (scanner.hasNextLine()) { final String lineFromFile =scanner.nextLine(); if(lineFromFile.contains(inputUsername)) { // 匹配! System.out.println(lineFromFile);休息; } else System.out.println("这里没有");此处不返回任何内容
-
你知道这种greping是区分大小写的吗?您可能需要使用
lineFromFile.toLowerCase().contains(inputUserName.trim().toLowerCase())
标签: java file search text line