我可以使用什么来替换字符串中的中间字符:000
变为010
。
我是否必须使用正则表达式,如果是的话,我可以使用该模式吗?或者只使用String.Replace
方法?
信息:字符串中始终有数字。
答案 0 :(得分:3)
在替换程序背后没有明确的逻辑,看看问题,但假设你在某个时候知道哪个符号应该出现在中间,
可以创建一个扩展方法,比如说这个
public static class Extension
{
public static string ReplaceMiddle(this string value, char charToPutIn)
{
var builder = new StringBuilder(value);
builder[value.Length/2] = charToPutIn;
return builder.ToString();
}
}
并在使用后像这样:
"hello".ReplaceMiddle('5')
将产生如下结果:
"he5lo"
正如所料。
答案 1 :(得分:2)
如果它只是一个3个字符的字符串:
String number = "123";
String res = number[0] + "5" + number[2];
答案 2 :(得分:2)
string s = "111000111";
string pattern = "000";
string replacement = "010";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(s, replacement);
lbloriginal.Text = s;
lblnew.Text = result;
答案 3 :(得分:1)
检查这些链接
http://msdn.microsoft.com/en-us/library/ms228599.aspx
http://msdn.microsoft.com/en-us/library/xwewhkd1(v=vs.90).aspx
希望这些链接可以帮助你
答案 4 :(得分:1)
用索引替换字符或子字符串有点尴尬。它可以归结为
string newString = str.Substring(0,1) + newChar + str.Substring(2);
内容更容易,您可以使用Replace method替换另一个子字符串。
正则表达式是一种选择,但即使这样也不是很好:
Regex.Replace(str, "^(.).(.)$", "${1}1$2"