c#子字符串索引

本文关键字:索引 字符串 | 更新日期: 2023-09-27 17:54:47

我有一个字符串看起来像这样-"FirstName||Sam LastName||Jones Address||123 Main ST ..."(100多个不同值)

我只想从整个字符串中找到Sam和Jones。

so string firstname = originalstring.substring…等。

有人知道我该怎么做吗?

- - - - - -我想我忘了提几件事。

FirstName||Sam'r'n MiddleName||'r'n LastName||Jones'r'n ....

那么现在如果我计算字符的数量,这对我没有帮助,因为可能需要更多的项目,而不仅仅是firstnamelastname

c#子字符串索引

使用正则表达式:

string myString = "FirstName||Sam LastName||Jones Address||123 Main ST...";
string pattern = @"FirstName'|'|('w+) LastName'|'|('w+) ";
Match m = Regex.Match(myString, pattern);
string firstName = m.Groups[1].Value
string lastName = m.Groups[2].Value;

我认为这可能比。split方法更好。如果你在"Sam"answers"LastName"之间有|,那么你肯定会想要。split。事实上,这可能会更好。

    string inStr = "FirstName||Sam LastName||Jones Address||123 Main ST ";
    int fStart = inStr.IndexOf("FirstName") + "FirstName".Length + "||".Length;
    int fEnd = inStr.IndexOf(" LastName");
    string FirstName = inStr.Substring(fStart, fEnd - fStart);

我会将字符串拆分两次,一次在" "上,然后再在||上,以获得姓和名的值

string [] ary = s.Split(" ");
string [] key;
string firstname;
string lastname;
foreach (string val in ary ) {
    key = val.Split("||");
    if ( key[0] == "FirstName") {
         firstname = key[1];
}
if ( key[0] == "LastName") {
   lastname = key[1];
}
}
str = Str.Split("||")[1].split(" ")[0] //Sam
str = Str.Split("||")[2].split(" ")[0] // Jones

类似string firstname = originalstring.substring(indexof("FirstName") + 11, ((indexof("LastName) - indexof("FirstName") + 11 )

这样你就能得到||之后的第一个字母直到"lastname"之前的第一个字母姓氏也是一样你只需要把名字换成lastname和lastname换成address

编辑:我的错…它不是substring.(indexOf...,而是

originalString.Substring(origianlString.IndexOf("FirstName) + 11, (originalString.IndexOf("LastName") - originalString.IndexOf("FirstName") + 11),当查找姓氏时,它不是+ 11而是10因为"LastName".Length + + "||".Length = 10