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它是因为如果集合中没有这样的索引(它回退到parts[2]),它会返回 null 而不是异常。

于 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

查找字符串:

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 回答
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

var newstr = new String(str.where(c => "789")).tostring();..我想这会起作用,或者你可以像这样使用 sumthng

于 2012-12-13T15:59:51.343 回答