[英]C# string.IndexOf method doesn't work
我正在使用C#從字符串中刪除特殊字符:
while (str.Contains("@"))
str = str.Remove(str.IndexOf("@"), 1);
但這會產生錯誤:
StartIndex不能小於零。
str
變量確實包含@
字符,但IndexOf()方法的結果值為-1。
我猜這是因為字符串編碼是utf-8,但是我不知道如何操作字符串。
str
值為NfyCAlcvxu1Xqw@ًں'„ًں
。
從MSDN的string.Contains
。 string.Contains
此方法執行序數比較(區分大小寫和不區分文化)。 搜索從該字符串的第一個字符位置開始,並一直持續到最后一個字符位置。
因此,您還必須在IndexOf
使用序數比較:
while (str.Contains("@"))
str = str.Remove(str.IndexOf("@",StringComparison.Ordinal), 1);
您單獨提供的那部分代碼似乎很好。
但是,我建議使用另一種方法解決此問題:
C#
str = str.Replace("@", "");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.