![](/img/trans.png)
[英]Put value in specific index to Char array then copy specific element of an Char array To another Char array in C#
[英]C# Char Array remove at specific index
如果给定索引处的char是数字,则不能确定从char数组中删除char的最佳方法。
private string TextBox_CharacterCheck(string tocheckTextBox)
{
char[] charlist = tocheckTextBox.ToCharArray();
foreach (char character in charlist)
{
if (char.IsNumber(character))
{
}
}
return (new string(charlist));
}
提前致谢。
// 现在已解决。 感谢所有贡献者
您可以使用Linq的功能:
return new string(tocheckTextBox.Where(c => !char.IsNumber(c)).ToArray())
使用Regex相当容易:
var result = Regex.Replace("a1b2c3d4", @"\d", "");
(如@Adassko所述,如果只需要数字0到9,而不需要其他任何数字字符,则可以使用"[0-9]"
代替@"\\d"
)。
您还可以使用StringBuilder相当有效地完成此操作:
var sb = new StringBuilder();
foreach (var ch in "a1b2c3d4")
{
if (!char.IsNumber(ch))
{
sb.Append(ch);
}
}
var result = sb.ToString();
您也可以使用linq:
var result = new string("a1b2c3d4".Where(x => !char.IsNumber(x)).ToArray());
使用正则表达式:
private string TextBox_CharacterCheck(string tocheckTextBox)
{
return Regex.Replace(tocheckTextBox, @"[\d]", string.Empty);;
}
System.String
是不可变的。 您可以使用string.Replace
或正则表达式将不需要的字符删除为新字符串。
最好的选择是使用正则表达式。 字符串是不可变的,这意味着您不能更改它们-您需要重写整个字符串-若要以最佳方式进行操作,则应使用StringBuilder
类并Append
每个字符。
同时还要注意你的代码- char.IsNumber
不仅检查字符0
- 9
,它也返回true
为每个数字字符,如٢
,你可能不希望这样。
这是返回true
的字符的完整列表:
0123456789٠١٢٣٤٥٦٧٨٩۰۱۲۳۴۵۶۷۸۹߀߁߂߃߄߅߆߇߈߉०१२३४५६७८९০১২৩৪৫৬৭৮৯੦੧੨੩੪੫੬੭੮੯૦૧૨૩૪૫૬૭૮૯୦୧୨୩୪୫୬୭୮୯௦௧௨௩௪௫௬௭௮௯౦౧౨౩౪౫౬౭౮౯೦೧೨೩೪೫೬೭೮೯൦൧൨൩൪൫൬൭൮൯๐๑๒๓๔๕๖๗๘๙໐໑໒໓໔໕໖໗໘໙༠༡༢༣༤༥༦༧༨༩၀၁၂၃၄၅၆၇၈၉႐႑႒႓႔႕႖႗႘႙០១២៣៤៥៦៧៨៩᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙0123456789
如果只需要可解析的数字,则还应该在正则表达式中使用[0-9]
而不是\\d
。
您还可以使用技巧将字符串.Split
到角色上,然后.Join
其重新加入。 这不仅可以删除一个或多个字符,还可以用其他字符替换它。 我使用此技巧从文件名中删除不正确的字符:
string.Join("-", possiblyIncorrectFileName.Split(Path.GetInvalidFileNameChars()))
此代码会将无法在有效文件名中使用的任何字符替换为-
如果给定索引处的char是数字,则可以使用LINQ从char数组中删除char。
//This will return you the list of char discarding the number.
var removedDigits = tocheckTextBox.Where(x => !char.IsDigit(x));
//This will return the string without numbers.
string output = string.join("", removedDigits);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.