我正在尝试读出并解释每行的字符串行。我看了一下StringReader类,但是当我在最后一行时,我需要找出它。这是我想要完成的一些伪代码:
while (!stringReaderObject.atEndOfStream()) {
interpret(stringReaderObject.readLine());
}
有人知道怎么做吗?
谢谢!
伊凡
答案 0 :(得分:51)
如果您从文件中读取它,则更容易做到:
foreach(var myString in File.ReadAllLines(pathToFile))
interpret(myString);
如果您从其他地方(Web服务类等)获取字符串,则分割字符串更简单:
foreach(var myString in entireString.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries))
interpret(myString);
答案 1 :(得分:4)
执行readLine时检查null - 请参阅docs。
答案 2 :(得分:3)
StreamReader类具有EndOfStream属性。你有没有考虑过使用它?
答案 3 :(得分:3)
我不确定你在哪里读书。如果是来自控制台,您可以检查输入字符串的结尾,如“退出”以表示输入结束
String input;
while((input = reader.readLine()) != "quit"){
// do something
}
答案 4 :(得分:3)
像这样:
string line;
while (null != (line = reader.ReadLine()) {
Process(line);
}
答案 5 :(得分:1)
解雇是正确的:
http://msdn.microsoft.com/en-us/library/system.io.streamreader.endofstream.aspx
while (!reader.EndOfStream)
{
string line = reader.ReadLine();
}