如何阅读带逗号的文本,然后不带逗号书写
本文关键字:然后 书写 何阅读 文本 | 更新日期: 2023-09-27 18:36:30
我有一个txt文件,其中包含用逗号分隔的数字。
例:
2, 4, 7, 8, 15, 17, 19, 20
1, 5, 13, 14, 15, 17, 19, 20
等等。
我想把它们写在屏幕上,但没有逗号。喜欢:
2 4 7 8 15 17 19 20
1 5 13 14 15 17 19 20
我有这段代码,但它只写出了奇数行,我需要所有的文本。
StreamReader input = new StreamReader(@"c:'c#'inp.txt");
string text;
string[] bits;
int x;
do
{
text = input.ReadLine();
bits = text.Split(',');
for (int i = 0; i < 8; i++)
{
x = int.Parse(bits[i]);
Console.Write(x + " ");
}
Console.WriteLine();
} while ((text = input.ReadLine()) != null);
任何帮助,不胜感激。
你在行中读了两次;你应该只读一次。 为此,可以使用循环条件检查的存储值来执行此操作,或者更简单地说,对循环条件使用 EndOfStream
。
您还应该使用 while
,而不是 do
/while
如果甚至没有一行:
StreamReader input = new StreamReader(@"c:'c#'inp.txt");
while (!input.EndOfStream)
{
string text = input.ReadLine();
string[] bits = text.Split(',');
for (int i = 0; i < 8; i++)
{
int x = int.Parse(bits[i]);
Console.Write(x + " ");
}
Console.WriteLine();
}
如果你需要做的就是把它写出来,你不需要花那么多精力:
while ((text = input.ReadLine()) != null)
{
Console.WriteLine(text.Replace(","," "));
}
流读的用途是这样,.Net 1(恕我直言),使用文件静态来读取/写入/处理数据,而无需访问任何流:文件方法。使用此行将所有数据读入字符串缓冲区:
string data = File.ReadAllText(@"c:'c#'inp.txt");
下面显示了读取数据后如何处理逗号:
//string data = File.ReadAllText(@"c:'c#'inp.txt");
string data = @"2, 4, 7, 8, 15, 17, 19, 20
1, 5, 13, 14, 15, 17, 19, 20";
Console.WriteLine (data.Replace(",", string.Empty));
/* result
2 4 7 8 15 17 19 20
1 5 13 14 15 17 19 20
*/
请注意,
您正在阅读该行两次:
do
{
text = input.ReadLine();
// ...
} while ((text = input.ReadLine()) != null);
看起来你可以用一个简单的 while 循环来替换它:
while ((text = input.ReadLine()) != null)
{
// ...
}
我可能是不正确的,因为我自己是新手,但您可能需要缓冲阅读器而不是流阅读器。
在 Java 中,我会使用 Scanner() 方法打开并读取文本文件,然后使用 Replace() 方法删除逗号。
希望这有帮助。