C# の質問: LastIndexOf() を使用して文字列を逆方向に検索する必要があります。問題の文字列は "South Dakota 1040" です。州名を 1040 システム インジケータから分割する必要があります。文字列の「1040」の部分は取得できますが、州名は取得できません。文字列に 2 つのスペースがあるため、逆方向に移動する必要があります。私が見ているものよりもこれを行うためのより良い方法はありますか?
質問する
9816 次
5 に答える
6
LastIndexOf
最後のスペースを取得するために使用します。次に、文字列を 2 つの部分に分割しますSubString
。メソッドを使用してこれを行うことができます。
str.SubString(0, str.LastIndexOf(' ')); //this gets you "South Dakota"
LastIndexOf
-1 を返す場合は必ず処理してください。
于 2013-05-16T20:35:18.140 に答える
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;
于 2013-05-16T20:43:10.230 に答える
0
var test = "South Dakota 1040";
var state = test.Remove(test.LastIndexOf(" "));
于 2013-05-16T20:35:53.520 に答える
-1
string replaceContent = "1040";
string content = "South Dakota 1040";
string result = content.Replace(replaceContent, "").Trim();
于 2013-05-16T20:41:41.100 に答える