我用MyString.Split(Environment.Newline.ToCharArray()[0])
將我的字符串從一個文件分割成不同的部分。但是,數組中的每個項目,除了第一個以\ n開始之後,我都是這樣做的?我知道我通過換行符分裂的方式對於缺少更好的單詞有點「不足」,所以如果有更好的方法,請告訴我...使用Environment.Newline分割字符串在大多數數組項中離開 n?
這是文件。 ..
我用MyString.Split(Environment.Newline.ToCharArray()[0])
將我的字符串從一個文件分割成不同的部分。但是,數組中的每個項目,除了第一個以\ n開始之後,我都是這樣做的?我知道我通過換行符分裂的方式對於缺少更好的單詞有點「不足」,所以如果有更好的方法,請告訴我...使用Environment.Newline分割字符串在大多數數組項中離開 n?
這是文件。 ..
如果你想要使用.Split()
,而不是讀的同時,你可以做一個行文件,以保持...
var splitResult = MyString.Split(new string[]{ System.Environment.NewLine },
System.StringSplitOptions.RemoveEmptyEntries );
/* or System.StringSplitOptions.None if you want empty results as well */
編輯:
的問題,你在非unix環境中有新的「字符」實際上是兩個字符。所以當你抓住零指數時,你實際上是在回車符上分割......而不是換行符(\ n)。
視窗= 「\ r \ n」 個
的Unix = 「\ n」 個
每http://msdn.microsoft.com/en-us/library/system.environment.newline.aspx
在Windows的換行是兩個字符(\ r和\ n)的。表達式Environment.Newline.ToCharArray()[0]
僅指定其中一個字符:\ r。因此,另一個字符(\ n)仍然是分割字符串的一部分。
我建議你使用這樣的閱讀您的文件:
public IEnumerable<string> ReadFile(string filePath)
{
using (StreamReader rdr = new StreamReader(filePath))
{
string line;
while ((line = reader.ReadLine()) != null)
{
yield return line;
}
}
}
您可能需要更多的錯誤處理,或指定不同的文件打開選項,或流傳遞給方法,而不是路徑,但通過ReadLine()
方法使用迭代器的想法是合理的。其結果是你可以使用這樣的代碼:
foreach (string line in ReadLine(" ... my file path ... "))
{
}
那麼,你期待在一個新的文件行上的每個記錄? – Jared
是啊,它就像123 \ n 123 \ n 123 \ n 123 – Oztaco
你會將你的輸入文件發佈到某個地方嗎?前幾行就夠了。 –