使用子字符串时比较数组

本文关键字:比较 数组 字符串 | 更新日期: 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, ""));
}

[^ ]匹配除空格以外的任何字符。