如何解决如何在C#.NET中用空字符替换字符串中的char
|| 我有一个像这样的字符串:string val = \"123-12-1234\";
如何在C#中使用空字符串替换破折号。
我的意思是val.Replace(char oldChar,newChar);
oldChar
和newChar
需要做什么。
解决方法
您可以使用带字符串的不同的ѭ4takes重载。
val = val.Replace(\"-\",string.Empty)
, 由于此处的其他答案(即使是正确的)也没有明确解决您最初的疑问,因此,我会做的。
如果您呼叫“ 6”,它将用另一个字符替换一个字符的出现。它是一对一的替代品。因此,结果字符串的长度将相同。
您想要的是删除破折号,这显然与用另一个字符替换破折号不同。您不能用\“ no character \”代替它,因为1个字符始终是1个字符。这就是为什么您需要使用带字符串的重载:字符串可以具有不同的长度。如果将长度为1的字符串替换为长度为0的字符串,则结果是破折号消失了,由\“ nothing \”代替。
, 这似乎太简单了,但是:
val.Replace(\"-\",\"\");
, val.Replace(\"-\",\"\");
MSDN来源
, string val = \"123-12-1234\";
val = val.Replace(\"-\",\"\"); // result: 123121234
, 如果要用空字符替换字符串中的字符,这意味着要从字符串中删除该字符,请阅读R. Martinho Fernandes的答案。
这是一个如何从字符串中删除字符的示例(用\“ Empty char \”替换):
public static string RemoveCharFromString(string input,char charItem)
{
int indexOfChar = input.IndexOf(charItem);
if (indexOfChar >= 0)
{
input = input.Remove(indexOfChar,1);
}
return input;
}
或此版本删除字符串中所有char重复出现的版本:
public static string RemoveCharFromString(string input,char charItem)
{
int indexOfChar = input.IndexOf(charItem);
if (indexOfChar < 0)
{
return input;
}
return RemoveCharFromString(input.Remove(indexOfChar,1),charItem);
}
, 如果您处于循环中,假设您要遍历要删除的标点符号列表,则可以执行以下操作:
private const string PunctuationChars = \".,!?$\";
foreach (var word in words)
{
var word_modified = word;
var modified = false;
foreach (var punctuationChar in PunctuationChars)
{
if (word.IndexOf(punctuationChar) > 0)
{
modified = true;
word_modified = word_modified.Replace(\"\" + punctuationChar,\"\");
}
}
//////////MORE CODE
}
诀窍如下:
word_modified.Replace(\"\" + punctuationChar,\"\");
, 我有Razvan Dumitru的拉丁语代码版本,因为我们甚至使用了100万个指标。场外我使用双重替换:D
public static string CleanNumb(string numb)
{
foreach (char c in \".,\'´\")
numb = numb.Replace(c,\' \');
return numb.Replace(\" \",\"\");
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。