搜索文本文件的用户变量-这段代码有什么问题
本文关键字:代码 问题 什么 段代码 文件 文本 用户 变量 搜索 | 更新日期: 2023-09-27 18:10:04
尝试从基于用户变量条目的文本文件中读取
我的条目有"Big Fred"这个名字的变体(大写/小写)
代码运行,但我没有得到任何结果。
我的笔记本电脑上的代码指向我从下面的代码中删除的特定位置。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ReadTextFileWhile
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter the name you wish to search for: "); //Prompt user for the name they wish to search for
string x = Console.ReadLine(); //assign the name the user inputs as their search parameter to the value of x
StreamReader myReader = new StreamReader("C:/insert location here"); //Read the the text file at this location and assign to myReader
string line = ""; //asssign 'nothing' to line.
while (line != null) //while line in the text file is not null (empty)
{
line = myReader.ReadLine(); //pass contents of myReader to line
if (line != null && line == x) //if contents of line are not null and equal to the variable in x print to screen
Console.WriteLine(line);
}
myReader.Close(); //close myReader properly
Console.ReadLine(); //Readline to keep console window open allowing a human to read output.
}
}
}
尝试使用字符串。IndexOf及其排除大小写差异的重载
line = myReader.ReadLine();
if (line != null && line.IndexOf(x, StringComparison.CurrentCultureIgnoreCase) >= 0)
Console.WriteLine(line);
您只想以大小写不敏感的方式匹配字符串。你可以使用。equals
if (line.Equals(x,StringComparison.InvariantCultureIgnoreCase));
另一个是:-你可以使用
String.IsNullOrWhiteSpace(line) or String.IsNullOrEmpty(line)
而不是检查是否为空
从文本文件中获取每一行的原因非常简单。你可能从网页或其他地方复制了文本内容。并且每行之间没有新的行常量'n或Environment.NewLine分隔。所以你需要做的就是打开文件,在每行之后按回车键手动插入新行,或者从文件中读取所有测试,然后用点[分割它。分隔符,并使用上面的代码单独处理它。我也遇到过同样的问题。现在运行良好。