使用子字符串时比较数组
本文关键字:比较 数组 字符串 | 更新日期: 2023-09-27 18:35:43
删除数组的一部分
所以目前我有以下代码
public static void ReadSuburbs()
{
String directory = @"C:'Address Sorting'";
string[] linesA = new string[5]
{
"41 Boundary Rd",
"93 Boswell Terrace",
"4/100 Lockrose St",
"32 Williams Ave",
"27 scribbly gum st sunnybank hills"
};
int found = 0;
foreach (string s in linesA)
{
found = s.IndexOf("st");
Console.WriteLine(s.Substring(found + 3));
}
}
目前我得到以下结果
边界路
博斯韦尔露台
洛克罗斯街
100号 威廉姆斯大道
桑尼班克山
我想知道是否有一种方法可以删除前三个单词,而不是删除字符。例如,如果我有一个数组
string[] linesA = new string[5]
{
"41 Boundary Rd",
"93 Boswell Terrace",
"4/100 Lockrose St",
"32 Williams Ave",
"27 scribbly gum st sunnybank hills"
};
我想删除此数组中的每个前三个单词,如果我打印到控制台,这将给我留下这个结果。
圣桑尼班克山
根据您的示例,您想要删除前三个单词,而不是每个第三个单词:
string[] linesA = new string[5] { "41 Boundary Rd", "93 Boswell Terrace", "4/100 Lockrose St", "32 Williams Ave", "27 scribbly gum st sunnybank hills"};
foreach (string line in linesA)
{
string[] words = line.Split(' ');
Console.WriteLine(string.Join(" ",words.Skip(3)));
}
这是正则表达式方式:
string[] linesA = new string[5] { "41 Boundary Rd", "93 Boswell Terrace", "4/100 Lockrose St", "32 Williams Ave", "27 scribbly gum st sunnybank hills" };
Regex r = new Regex(@"^[^ ]* [^ ]* [^ ]* *");
foreach (string s in linesA)
{
Console.WriteLine(r.Replace(s, ""));
}
[^ ]
匹配除空格以外的任何字符。