2012-12-13 40 views
0

我有一个蒙面文本框,看起来像这样的字符串:C#如何挑选出来的某些部分在一个字符串

123.456.789.abc.def.ghi 

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

请忽略字符值(它们可以被复制,而不是唯一的以上)。我如何挑出部分字符串,例如“789”? String.Remove()不起作用,因为它删除索引后的所有内容。

+1

你如何识别该部分? –

+1

你可以更具体地说明你“挑出”字符串的一部分是什么意思吗?你只是想删除它?如果你只是想从你的字符串中删除一个子字符串,你可以这样做:myString = myString.Replace(“789”,“”); – Pete

+0

我觉得'挑出'是'提取' – Anirudha

回答

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 
} 
0

尝试使用Replace

String.Replace("789", "") 
1

你的意思是你想要获得那部分字符串?如果是这样,你可以使用string.Split

string s = "123.456.789.abc.def.ghi"; 
var splitString = s.Split('.'); 
// splitString[2] will return "789" 
+0

谢谢大家,String.Split()正是我所需要的。 Muchas gracias。 Merci Beaucoup。 Domo arigato gozaimashita。 – CaTx

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])。

+0

感谢您的详细回复。 – CaTx

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",""); 

正则表达式可以给你很大的灵活性发现事情最小代码,缺点是我t可能难以编写它们

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", ""); 
0

VAR =中newstr新的String(str.where(C => “789”))。tostring(); ..我想这会工作,或者你可以使用像这样的sumthng

相关问题