簡體   English   中英

C#string.IndexOf方法不起作用

[英]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.Containsstring.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.

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