C#读取TXT文件如何按'('、')'将每个字符分割为单独新行
问题原因
- 原有代码使用
,作为分隔符拆分字符串,但目标TXT文件中不存在逗号,完全由(、)两种字符组成,拆分逻辑和实际需求完全不匹配 - 你需要的是每个括号单独占一行,不需要按行或者按特殊分隔符拆分,直接遍历字符串的每个字符处理即可
正确实现代码
如果你只是需要将每个括号输出为单独一行,可以用以下代码:
class ReadFromFile { static void Main(string[] args) { // 直接读取整个文件的所有内容,不需要按行拆分 string fileContent = System.IO.File.ReadAllText(@"C:\Users\filip\Desktop\String.txt"); // 遍历每个字符,符合要求的括号单独输出一行 foreach (char c in fileContent) { // 该判断可过滤文件中可能存在的换行、空格等多余字符,确认文件只有括号可去掉 if (c == '(' || c == ')') { Console.WriteLine(c); } } } }
如果你需要将解析后的元素存入集合方便后续遍历处理,可以用以下版本:
class ReadFromFile { static void Main(string[] args) { string fileContent = System.IO.File.ReadAllText(@"C:\Users\filip\Desktop\String.txt"); // 定义集合存储所有括号元素,后续直接遍历该集合即可 List<char> bracketList = new List<char>(); foreach (char c in fileContent) { if (c == '(' || c == ')') { bracketList.Add(c); Console.WriteLine(c); } } } }
代码说明
- 用
ReadAllText直接读取整个文件内容,避免逐行读取的额外循环开销 - 直接遍历字符串的每一位字符,处理逻辑完全匹配“每遇到一个
(或)就生成一个新行”的需求
内容的提问来源于stack exchange,提问作者Filip Baron
相关产品推荐
相关产品推荐

