簡體   English   中英

C#如何挑選字符串中的某些部分

[英]C# how to pick out certain part in a string

我在蒙版的TextBox中有一個字符串,如下所示:

123.456.789.abc.def.ghi

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

請忽略字符的值(它們可以重復,並且如上所述不是唯一的)。 我如何挑選字符串的一部分,例如“ 789”? String.Remove()不起作用,因為它會刪除索引之后的所有內容。

您是說要獲取字符串的那一部分嗎? 如果是這樣,您可以使用string.Split

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

您可以簡單地使用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] )。

如果可以使用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
}

嘗試使用Replace

String.Replace("789", "")

查找字符串:

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

regex可以給您很大的靈活性,可以用最少的代碼查找內容,缺點是可能很難編寫它們

如果知道子字符串開始的索引及其長度,則可以使用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", "");

var newstr = new String(str.where(c =>“ 789”))。tostring(); ..我想這會起作用,或者您可以像這樣使用sumthng

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM