首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用C#在字符串中的第一个数值之后用指定的字符替换空格/字符?

如何使用C#在字符串中的第一个数值之后用指定的字符替换空格/字符?
EN

Stack Overflow用户
提问于 2013-07-31 14:25:31
回答 3查看 438关注 0票数 0

我有含有StringSpecial Characters & Numeric Values

代码语言:javascript
复制
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

我试过使用:

代码语言:javascript
复制
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);
        }

使用上面的代码,它用指定的字符替换了第一个匹配项,这很好。

代码语言:javascript
复制
Eg: 3-3 3 Output: 3f3 3

但是对于3 3-3 Output: 3 3f3来说,按照代码是正确的。但我想在第一个数字之后替换空格/字符,即3f3-3

帮助感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-31 14:44:40

简单的循环应该能工作。

代码语言:javascript
复制
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;
       }
    }
}

输出实例

代码语言:javascript
复制
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

从评论中更新

代码语言:javascript
复制
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;
         }
     }
}
票数 0
EN

Stack Overflow用户

发布于 2013-07-31 14:35:04

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2013-08-01 09:18:13

以下是我的工作:

修改后的守则:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17973096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档