处理字符串,复制内容



他已经设法处理这个问题有一段时间了。更准确地说,它尝试从字符串中提取一些信息:

string source = "1trnFIRSTt36t4.976.501t3.162t3.121t26rn2trn";

我希望最终结果看起来像这样:

float firstNumber = 36;
float secondNumber = 4.976.501;
float thirdNumber = 3.162;
float fourthNumber = 3.121;
float fiftNumber = 26;

如何从这个字符串中获取信息?我试着用绳子。子字符串方法

int From = St.IndexOf("t") + "t".Length;
int To = St.LastIndexOf("t"); // here's the problem
String result = St.Substring(pFrom, pTo - pFrom);
float firstNumber = float.Parse(result);

问题是相同的/t多次出现,我不知道如何在string中指定多次出现。子字符串

有一个超载的String.IndexOf,允许指定从哪里搜索下一个出现的位置。获得第一个出现点后,在搜索下一个出现点时使用它的位置加1。这样,您就可以一步一步地搜索选项卡:

var firstTab = St.IndexOf("t");
var nextTab = St.IndexOf("t", firstTab + 1);

另一种方法是使用制表符作为分隔符分割字符串:

var parts = St.Split('t');

然后您可以分析这些部分并找到出现的情况,而不必担心字符串的位置。

您可以使用public string[] Split (params char[]? separator);

方法
string[] parts = St.Split('t');
float firstNumber = Single.Parse(parts[2].Trim());
float secondNumber = Single.Parse(parts[3].Trim());
float thirdNumber = Single.Parse(parts[4].Trim());
float fourthNumber = Single.Parse(parts[5].Trim());
float fiftNumber = Single.Parse(parts[6].Trim());

Trim去除rn

Single.Parse Method将数字的字符串表示形式转换为等效的单精度浮点数。System.Single的c#别名是float

或者你可以像这样得到数组中的数字

float[] numbers = St.Split('t')
.Skip(2)
.Take(5)
.Select(s => Single.Parse(s.Trim())
.ToArray();

最新更新