如何从文本文件行中匹配指定单词?MATERIAL匹配失败求助
问题分析与解决方案
你的代码中lineArgument.Contains("MATERIAL")无法匹配目标文本行,大概率是以下原因之一,对应解决方案如下:
文本行存在不可见字符或非标准空格
目标文本里的"MATERIAL"前后有大量空白,可能包含全角空格、制表符或其他非打印字符,导致直接匹配失败。可以先对行内容做去除前后空白处理后再判断:if (lineArgument.Trim().Contains("MATERIAL")) { Console.WriteLine("Wie geht es euch"); }如果"MATERIAL"固定在行的开头,用
StartsWith会更精准:if (lineArgument.Trim().StartsWith("MATERIAL")) { Console.WriteLine("Wie geht es euch"); }字符串比较受区域性设置干扰
部分场景下,系统区域性设置会影响字符串匹配逻辑,改用序数比较可以规避这个问题:if (lineArgument.IndexOf("MATERIAL", StringComparison.Ordinal) >= 0) { Console.WriteLine("Wie geht es euch"); }若需要兼容大小写不一致的情况,替换为
StringComparison.OrdinalIgnoreCase即可。验证文本真实字符编码
若以上方法均无效,建议输出行内容的字符编码,排查是否存在隐藏字符:foreach (char c in lineArgument) { Console.WriteLine($"Char: '{c}' | ASCII Code: {(int)c}"); }正常大写字母"M"的ASCII码为77,"A"为65,以此类推,若出现异常编码值,说明文本存在特殊字符,需针对性处理。
内容的提问来源于stack exchange,提问作者user22498067
相关产品推荐
相关产品推荐

