[英]Split a string containing various spaces
我有如下txt文件,並希望將它們拆分成雙數組
node Strain Axis Strain F P/S Sum Cur Moment
0 0.00000 0.00 0.0000 0 0 0 0 0.00
1 0.00041 -83.19 0.0002 2328 352 0 0 -0.80
2 0.00045 -56.91 0.0002 2329 352 0 0 1.45
3 0.00050 -42.09 0.0002 2327 353 0 0 -0.30
我的目標是為每列提供一系列數組。 即node [] = {0,1,2,3),Axis [] = {0.00,-83.19,-56.91,-42.09},....
我知道如何讀取txt文件並將字符串轉換為雙數組。 但問題是值不是由制表符分隔,而是由不同數量的空格分隔。 我用Google搜索找到了解決方法。 但是,我找不到任何東西。 一些人討論了一種恆定空間的方法。 如果您知道該怎么做或該問題有現有的問答並告訴我,我們將不勝感激。 謝謝,
不同的方式,雖然我建議你堅持使用RemoveEmptyEntries
這里的其他答案將是使用正則表達式,但在這種情況下它是矯枉過正:
string[] elements = Regex.Split(s, @"\s+");
StringSplitOptions.RemoveEmptyEntires
應該做的訣竅:
var items = source.Split(new [] { " " }, StringSplitOptions.RemoveEmptyEntries);
返回值不包含包含空字符串的數組元素
var doubles = text.Split("\n\r".ToCharArray(), StringSplitOptions.RemoveEmptyEntries)
.Skip(1)
.Select(line => line.Split(new char[]{' '},StringSplitOptions.RemoveEmptyEntries)
.Select(x => double.Parse(x)).ToArray())
.ToArray();
使用選項StringSplitOptions.RemoveEmptyEntries
將連續分隔符視為一個:
string[] parts = source.Split(' ',StringSplitOptions.RemoveEmptyEntries);
然后從那里解析:
double[] values = parts.Select(s => double.Parse(s)).ToArray();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.