C#程序设计:读取文件并检查子字符串

需积分: 9 3 下载量 24 浏览量 更新于2024-11-09 收藏 2KB TXT 举报
"C# OOP 设计代码示例,涉及字符串处理、文件读取、ArrayList 使用以及自定义方法 Include 的实现" 这段代码是用 C# 编写的,主要展示了面向对象编程(OOP)的一些基本概念,如类、方法和数据结构的使用。它包含两个主要部分:主程序(Main 方法)和一个名为 Include 的静态方法。 在主程序中,首先从控制台读取用户输入的字符串,并存储到 `strInput` 变量中。接着,程序尝试打开名为 "C:\\Temp\\input.txt" 的文件,并通过 `StreamReader` 类逐行读取文件内容。每读取一行,都会将该行内容(单词)与 `strInput` 进行比较。如果该单词的长度小于等于 `strInput` 的长度并且不为空,那么会调用 `Include` 方法来判断这个单词是否包含于 `strInput`。如果是,就打印出这个单词。 `Include` 方法的主要功能是检查一个字符串(`word`)的所有字符是否都包含在另一个字符串(`inputWords`)中。它通过将 `word` 转换为字符数组并遍历每一个字符来实现。对于 `word` 的每个字符,它会在 `inputWords` 中查找匹配的字符。如果找到匹配项,就将 `inputWords` 中的该字符移除,并增加计数器 `count`。如果遍历完所有字符且没有找到匹配项,则将标志变量 `flag` 设置为 false,表示 `word` 不包含在 `inputWords` 中。最后,`Include` 方法返回 `flag` 的值,即判断结果。 这个代码示例涉及到的知识点包括: 1. **C# 基本语法**:变量声明(如 `string strInput` 和 `ArrayList array`),条件语句(如 `if`),循环(如 `while` 和 `for`),以及方法调用。 2. **控制台输入输出**:使用 `Console.ReadLine()` 读取用户输入,`Console.WriteLine()` 输出信息。 3. **文件操作**:通过 `FileStream` 和 `StreamReader` 对文件进行读取。`FileMode.Open` 参数表示打开文件进行读取。 4. **数据结构**:使用 `ArrayList` 存储数据,虽然在 .NET 中更推荐使用泛型集合如 `List<T>`,但此处仍展示了 `ArrayList` 的基本用法。 5. **字符串处理**:`Trim()` 方法去除字符串首尾空格,`ToCharArray()` 将字符串转换为字符数组。 6. **方法定义**:`Include` 方法的实现,包含了嵌套循环和逻辑判断。 7. **字符数组操作**:通过 `char[]` 和 `GetValue()` 方法访问字符数组中的元素,以及 `Remove()` 方法移除字符。 8. **条件检查**:使用 `Equals()` 检查字符是否相等,`Length` 属性获取字符串长度。 9. **流程控制**:`flag` 和 `count` 变量用于跟踪当前处理状态和计数。 10. **面向对象编程**:虽然这个例子没有定义类,但它展示了方法的使用,这是 OOP 的一部分。 通过这个示例,开发者可以学习到如何在 C# 中进行基本的输入输出、文件操作、字符串处理以及逻辑判断。同时,这也是一个很好的练习,帮助理解如何编写自己的辅助方法来处理特定问题。