簡體   English   中英

拆分包含各種空格的字符串

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM