c# - 如何用多个字符替换一个字符c#

标签 c# string replace character

我正在为我的考试做一些例子,我发现用其他字符串替换字符串时出现问题。我知道如何将字符串中的一个字符替换为其他字符或恢复字符串。

我们有一个字符串

 s="*****\n***\n****"

我们需要用“asd”替换所有的“*”,它应该是这样的

s="asdas\ndas\ndasd"

最佳答案

一种可能的方法是编写一个 for 循环并检查字符是否为 * 并使用计数器跟踪已经完成了多少次替换。

使用模 % 来查看您需要替换哪个字符并使用 StringBuilder添加字符。

例如

string s="*****\n***\n****";
StringBuilder sb = new StringBuilder();
string subj = "asd";
int counter = 0;
for (int i = 0; i < s.Length; i++) {
    if (s[i] == '*') {
        sb.Append(subj[counter % subj.Length]);                        
        counter++;
        continue;
    }
    sb.Append(s[i]);
}
Console.WriteLine(sb.ToString());

结果

asdas
das
dasd

C# demo

关于c# - 如何用多个字符替换一个字符c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57337546/

相关文章:

javascript - 用于删除紧随非数字后面的零的正则表达式

c# - 当使用 Parallel BeginInvoke 时有效而 Invoke 无效 - c# 4.0

c# - 存储客户端列表对象

c# - 使用XNA接入GPGPU进行图像处理

javascript - 在 JavaScript 中拆分字符串并检测换行符

c++ - 如何在 C++ 中替换 vector 中的特定值?

C# Directory.GetDirectories - 如何解决 UnauthorizedAccessException?

string - 是否有 String::chars 的自有版本?

c - const char * 的 scanf 段错误

javascript - 使用 DOJO 在 Javascript 中格式化字符串