using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication5
{
class Program {
static void Main(string[] args) {
Console.WriteLine("INPUT: ");
String input = Console.ReadLine();
int index = 0;
StringBuilder builder = new StringBuilder(input);
builder.Replace("a", "aa");
builder.Replace("bb", "b");
builder.Replace("c", "");
Console.WriteLine("OUTPUT: " + builder);
Console.ReadKey();
}
}
}
当我输入两个连续的字母c时,它必须将cc添加到输出中。如果我输入一个c,它必须跳过它或删除它。我的问题是由于两个连续的c被删除 builder.Replace(“c”,“”);我应该用什么方法?
样本输入:abaabbcbaccb
输出必须是:aabaaaabbaaccb
答案 0 :(得分:1)
builder.Replace("a", "aa");
builder.Replace("b", "b");
builder.Replace("bb", "b");
builder.Replace("cc", "~");
builder.Replace("c", "");
builder.Replace("~", "cc");
答案 1 :(得分:1)
由于您不需要使用StringBuilder.Replace
,Regex
如何:
[^c](c)[^c]
你可以这样使用:
var s = Regex.Replace(input, "[^c](c)[^c]", "");
答案 2 :(得分:0)
消除所有单曲c:
srt = Regex.Replace(str, "(?<=[^c]|^)c(?=[^c]|$)", match => "");