[英]Replace the middle of a string with only 3 chars
我可以用什么来替换这样的字符串中的中间字符: 000
变为010
。
我必须使用正则表达式来做吗,如果可以,我可以使用模式吗? 还是仅使用String.Replace
方法?
信息:字符串中总是有数字。
看着问题,替换过程背后没有明确的逻辑,但是假设您在某个时候知道哪个符号应出现在中间,
可以创建一个扩展方法,像这样
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"
如预期的那样。
如果只有3个字符串:
String number = "123";
String res = number[0] + "5" + number[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;
用索引替换字符或子字符串有点尴尬。 它会归结为
string newString = str.Substring(0,1) + newChar + str.Substring(2);
通过内容可以轻松得多,您可以在其中使用Replace方法将一个子字符串替换为另一个。
正则表达式是一个选择,但即使那样也不是很漂亮:
Regex.Replace(str, "^(.).(.)$", "${1}1$2"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.