我正在使用C#从字符串中删除一个特殊字符:
while (str.Contains("@"))
str = str.Remove(str.IndexOf("@"), 1);
Run Code Online (Sandbox Code Playgroud)
但这会产生错误:
StartIndex不能小于零.
的str变量确实包含@字符,但的IndexOf的结果值()方法是-1.
我想这是因为字符串编码是utf-8,但我不知道如何操作字符串.
价值str是NfyCAlcvxu1Xqw@??‘„??.
来自MSDN string.Contains
此方法执行序数(区分大小写和文化不敏感)比较.搜索从此字符串的第一个字符位置开始,并继续到最后一个字符位置.
所以你必须在以下方面使用序数比较IndexOf:
while (str.Contains("@"))
str = str.Remove(str.IndexOf("@",StringComparison.Ordinal), 1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |