0

マスクされたTextBoxに次のような文字列があります。

123.456.789.abc.def.ghi

"---.---.---.---.---.---"  (masked TextBox format when empty, cannot use underscore X(  )

文字の値は無視してください(重複する可能性があり、上記のように一意ではありません)。文字列の一部、たとえば「789」を選択するにはどうすればよいですか?String.Remove()インデックスの後のすべてを削除するため、機能しません。

4

7 に答える 7

1

文字列のその部分を取得したいということですか? もしそうなら、あなたは使うことができますstring.Split

string s = "123.456.789.abc.def.ghi";
var splitString = s.Split('.');
// splitString[2] will return "789"
于 2012-12-13T15:55:06.230 に答える
1

単純に使用できますString.Split(文字列が実際に表示したものである場合)

string str = "123.456.789.abc.def.ghi";
string[] parts = str.Split('.');
string third = parts.ElementAtOrDefault(2); // zero based index
if(third != null)
    Console.Write(third);

Enumerable.ElementAtOrDefaultコレクションにそのようなインデックスがない場合、例外ではなくnullを返すため、使用しました(にフォールバックしparts[2]ます)。

于 2012-12-13T15:55:22.703 に答える
1

が常に文字列に含まれているSplit場合は、値を区切るために使用できます。.

string input = "123.456.789.abc.def";

string[] mySplitString = input.Split('.');

for (int i = 0; i < mySplitString.Length; i++)
{
    // Do you search part here
}
于 2012-12-13T15:55:43.683 に答える
0

を使ってみてくださいReplace

String.Replace("789", "")
于 2012-12-13T15:54:43.607 に答える
0

var newstr = new String(str.where(c => "789")).tostring();..これでうまくいくか、このように sumthng を使用できると思います

于 2012-12-13T15:59:51.343 に答える
0

部分文字列の開始位置のインデックスとその長さがわかっている場合は、String.Substring()を使用できます。これにより、部分文字列が得られます。

String myString = "123.456.789";
// looking for "789", which starts at index 8 and is length 3
String smallString = myString.Substring(8, 3);

文字列の特定の部分を削除しようとしている場合は、String.Replace()を使用します。

String myString = "123.456.789";
String smallString = myString.Replace("789", "");
于 2012-12-13T15:59:20.927 に答える
0

文字列を見つける:

string str="123.456.789.abc.def.ghi";
int i = str.IndexOf("789");
string subStr = str.Substring(i,3);

部分文字列の置換:

  str = str.Replace("789","").Replace("..",".");

正規表現:

  str = Regex.Replace(str,"789","");

正規表現を使用すると、最小限のコードで柔軟に検索できます。欠点は、それらを記述するのが難しい場合があることです。

于 2012-12-13T15:56:56.470 に答える