[英]C#: Replace Certain Characters if they are the First Character of the String Using Regex
[英]How to replace space/character with specified character after first numeric value in string using C#?
我有包含Special Characters & Numeric Values
String
。
Eg:
3-3 3
3-3"3/4
3-3-3/4
3-3 3/4
3 3 3
3'3 3
Output must be:
3f3 3
3f3"3/4
3f3-3/4
3f3 3/4
3f3 3
3f3 3
我尝试使用:
public static string ReplaceFirst(string text, string search, string replace)
{
int pos = text.IndexOf(search);
if (pos < 0)
{
return text;
}
return text.Substring(0, pos) + replace + text.Substring(pos + search.Length);
}
使用上面的代码,它用指定的字符替换了第一次出现的字符,这很好用。
Eg: 3-3 3 Output: 3f3 3
但是对于3 3-3 Output: 3 3f3
根据代码3 3-3 Output: 3 3f3
是正确的。 但是我想在第一个数字之后替换空格/字符,这将是3f3-3
帮助赞赏!
var match = Regex.Match(text, search); //To search for any special character, use @"\W" as the second parameter
var editable = text.ToCharArray();
editable[match.Index] = replace[0];
text = new String(editable);
return text;
简单的循环应该起作用。
for(int i =0; i < myListOfStrings.Count; i++)
{
char[] chars = myListOfStrings[i].ToCharArray();
for (int j = 0; j < chars.Count(); j++)
{
if (Char.IsDigit(chars[j]))
{
if(j + 1 < chars.Count())
{
chars[j + 1] = 'f'; //'f' being your replacing character
myListOfStrings[i] = new string(chars);
}
break;
}
}
}
输出示例
myListOfStrings.Add("3-3 3");
myListOfStrings.Add("3-3-3/4");
myListOfStrings.Add("3 3-3");
myListOfStrings.Add("3 3 3");
3f3 3
3f3-3/4
3f3-3
3f3 3
来自评论的更新
for (int i = 0; i < myListOfStrings.Count; i++)
{
char[] chars = myListOfStrings[i].ToCharArray();
for (int j = 0; j < chars.Count(); j++)
{
if (!Char.IsDigit(chars[j]))
{
if (j + 1 < chars.Count())
{
chars[j] = 'f'; //'f' being your replacing character
myListOfStrings[i] = new string(chars);
}
break;
}
}
}
以下为我工作:
修改后的代码:
string S="10-3 3";
char[] chars = S.ToCharArray();
for (int j = 0; j < chars.Count(); j++)
{
if (Char.IsDigit(chars[j]))
{
}
else
{
if (j + 1 < chars.Count())
{
chars[j] = 'f'; //'f' being replacing character
S = new string(chars);
}
break;
}
}
Output: 10f3 3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.