[英]How to keep only numbers and some special characters in a string?
我有一個包含常規字符,特殊字符和數字的字符串。 我正在嘗試刪除常規字符,只保留數字和特殊字符。 我使用循環檢查字符是特殊字符還是數字。 然后,我將其替換為空字符串。 但是,這似乎不起作用,因為出現錯誤“無法將!=應用於字符串或char”。 我的代碼如下。 如果可能的話,請給我一些解決辦法。 謝謝。
public string convert_string_to_no(string val)
{
string str_val = "";
int val_len = val.Length;
for (int i = 0; i < val_len; i++)
{
char myChar = Convert.ToChar(val.Substring(i, 1));
if ((char.IsDigit(myChar) == false) && (myChar != "-"))
{
str_val = str_val.replace(str_val.substring(i,1),"");
}
}
return str_val;
}
您可以使用正則表達式來做到這一點。它比使用循環和清理更快
String test ="Q1W2-hjkxas1-EE3R4-5T";
Regex rgx = new Regex("[^0-9-]");
Console.WriteLine(rgx.Replace(test, ""));
在這里檢查工作代碼
似乎嘗試將“-”更改為“-”,更好地構造字符串而不替換char。
public string convert_string_to_no(string val)
{
string str_val = "";
int val_len = val.Length;
for (int i = 0; i < val_len; i++)
{
char myChar = Convert.ToChar(val.Substring(i, 1));
if (char.IsDigit(myChar) && myChar == '-')
{
str_val += myChar;
}
}
return str_val;
}
我認為Linq:
public static class StringExtensions
{
public static string ToLimitedString(this string instance,
string validCharacters)
{
// null reference checking...
var result = new string(instance
.Where(c => validCharacters.Contains(c))
.ToArray());
return result;
}
}
用法:
var test ="Q1W2-hjkxas1-EE3R4-5T";
var limited = test.ToLimitedString("01234567890-");
Console.WriteLine(limited);
結果:
12-1-34-5
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.