拆分和修剪以提取价值

时间:2015-03-11 11:02:02

标签: c# split trim

在我的程序中,我读取了一个由流发送的行,它存储在一个名为result的变量中。

结果可能是“GET / data”。我想从中提取“数据”。

我用空格分割,它存储在一个数组字符串中,所以在那之后我进入变量部分: 得到 /数据

但现在我只想修剪数据前面的“/”。我试过“trimstart”,但没有奏效。有什么建议吗?

string[] delimiters = new string[] { " ", "\r\n"};
string[] lineParts = result.Split(delimiters, StringSplitOptions.RemoveEmptyEntries);
result.TrimStart('/');

3 个答案:

答案 0 :(得分:1)

与所有字符串方法一样,TrimStart返回一个新的字符串对象,它不会更改原始字符串对象。它不能,因为.NET中的字符串是immutable types。你无法改变它们。

这就是为什么你需要将返回的对象重新分配给相同的字符串或不同的字符串。

lineParts[1] = lineParts[1].TrimStart('/');

这里有 demonstration

答案 1 :(得分:0)

您可以使用拆分功能提取数据。

string[] rslt = result.Split('/');
string data = rslt[1].ToString();

此数据将包含提取的数据。

请参阅demo

答案 2 :(得分:0)

这将对lineParts中的每个字符串进行修剪/

string result = "GET /DATA";
string[] delimiters = new string[] { " ", "\r\n" };
string[] lineParts = result.Split(delimiters, StringSplitOptions.RemoveEmptyEntries); // contains {"GET", "/DATA"}
string[] newLineParts = lineParts.Select(o=>o.TrimStart('/')).ToArray(); // contains {"GET" , "DATA"}