c#如何删除每一行某项后面的每个字符
本文关键字:字符 何删除 删除 一行 | 更新日期: 2023-09-27 18:14:36
所以我一直在试图找出如何删除字符后的某一点在每行,例如我有一个列表,如:
dskfokes=dasfn3rewk
dsanfiwen=434efsde
damkw4343=o3rm3i
dmfkim303rk2=0439wefksd
32i32j9esfj=42393jdsf
如何删除'='
之后的每一行内容?
使用string.IndexOf()获取要删除的字符的索引,然后使用string.Remove()进行删除。
string str = "dskfokes=dasfn3rewk";
str = str.Remove(str.IndexOf('='));
一种方法是使用LINQ:
var strings = new string[] {
"dskfokes=dasfn3rewk
, "dsanfiwen=434efsde
, "damkw4343=o3rm3i
, "dmfkim303rk2=0439wefksd
, "32i32j9esfj=42393jdsf
};
var res = strings.Select(s => s.Split('=')[0]).ToArray();
这分割=
上的每个字符串,并删除第一个'='
字符之后的所有内容。
您也可以使用String.Split()
,如
string[] allWords = new string[] {
"dskfokes=dasfn3rewk",
"dsanfiwen=434efsde",
"damkw4343=o3rm3i",
"dmfkim303rk2=0439wefksd",
"32i32j9esfj=42393jdsf"
};
foreach(string s in allWords)
{
string[] urstring = s.Split('=');
Console.WriteLine(urstring[0]);
}
我建议您使用字符串处理操作SubString
和IndexOf
的组合来实现这一点,考虑以下示例:
List<string> inputLine = new List<string>(){ "dskfokes=dasfn3rewk",
"dsanfiwen=434efsde",
"damkw4343=o3rm3i",
"dmfkim303rk2=0439wefksd",
"32i32j9esfj=42393jdsf"};
List<string> outputLines = inputLine.Select(x =>
x.IndexOf('=') == -1 ? x :
x.Substring(0, x.IndexOf('='))).ToList();
注意:如果没有找到指定的索引,IndexOf
将返回-1
,在这种情况下,substring
方法将抛出错误,因为-1
将不是一个有效的索引。因此,在继续之前,我们必须检查字符串中是否存在index。您也可以像这样尝试简单的foreach
:
List<string> outputLines=new List<string>();
int currentCharIndex=-1;
foreach (string line in inputLine)
{
currentCharIndex = line.IndexOf('=');
if(currentCharIndex ==-1)
outputLines.Add(line);
else
outputLines.Add(line.Substring(0,currentCharIndex));
}