LastIndexOf()方法

时间:2013-05-16 20:30:52

标签: c#

C#问题: 我需要使用LastIndexOf()向后搜索一个字符串 有问题的字符串是“South Dakota 1040” 需要从1040系统指示器中拆分状态名称。 我可以单独获取字符串的“1040”部分,但不能单独获取状态名称。 由于字符串中有两个空格,因此必须向后移动。 有没有比我正在看的更好的方法呢?

5 个答案:

答案 0 :(得分:5)

使用LastIndexOf获取最后一个空格。然后将字符串拆分为两部分,您可以使用SubString方法执行此操作。

str.SubString(0, str.LastIndexOf(' ')); //this gets you "South Dakota"

确保在LastIndexOf返回-1时处理。

答案 1 :(得分:1)

在软件开发中有很多方法可以给猫皮肤(请注意我对猫或任何其他类型的动物没有感情):)这些都可以使用,如果您有特定的模式,我更喜欢正则表达式选项可以归结为,但那只是我:)。

// our string
string x = "South Dakota 1040";

x.Substring(0, x.LastIndexOf(' '));
// this basically does the same as above, but removes anything with a space and numbers
Regex.Replace(x, @"\s\d+", string.Empty);
// this is simmilar to regex above, though you have to watch out for no match cases
Regex.Match(x, @".*?(?=\s\d+)").Value;

答案 2 :(得分:0)

var test = "South Dakota 1040";

var state = test.Remove(test.LastIndexOf(" "));

答案 3 :(得分:-1)

这里不使用codefreak,逻辑是在foreach中截断你的字符串,并在单元格/列表中找到大于位置[0] / [1]的字符串。这对你来说是否足够?

答案 4 :(得分:-1)

 string replaceContent = "1040";
 string content = "South Dakota 1040";
 string result = content.Replace(replaceContent, "").Trim();