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