我在蒙版TextBox中有一个字符串,如下所示:
123.456.789.abc.def.ghi
"---.---.---.---.---.---" (masked TextBox format when empty, cannot use underscore X( )
请忽略字符的值(它们可以重复,而不是如上所述)。如何挑出部分字符串,说“789”? String.Remove()
不起作用,因为它会删除索引后的所有内容。
答案 0 :(得分:1)
你的意思是你想获得那部分字符串吗?如果是这样,您可以使用string.Split
string s = "123.456.789.abc.def.ghi";
var splitString = s.Split('.');
// splitString[2] will return "789"
答案 1 :(得分: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而不是异常。
答案 2 :(得分: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
}
答案 3 :(得分:0)
尝试使用Replace
。
String.Replace("789", "")
答案 4 :(得分: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","");
正则表达式可以为您提供很多灵活性,以最少的代码查找内容,缺点是可能难以编写它们
答案 5 :(得分: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", "");
答案 6 :(得分:0)
var newstr = new String(str.where(c =&gt;“789”))。tostring(); ..我猜这可行,或者你可以像这样使用sumthng