以不同的方式替换单词

时间:2015-11-23 10:12:25

标签: c# .net string

首先我有Common Language Runtime Exceptions之类的短语。在输出中,我需要ice z comp,其中包含短语,例如:List<string>

现在我有了这个:

ice-z comp, ice z-comp, ice-z-comp

1 个答案:

答案 0 :(得分:0)

使用以下实现可以解决该问题。首先,输入被分成单个单词。

var Words = word.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries).ToArray();

然后,考虑到两种情况,即连接是用空格还是用连字符完成,再次组合这些单词。这可以按如下方式递归完成,其中像GenerateResult("", 0 )这样的调用将开始计算。

List<string> Result = new List<string>();

void GenerateResult(string Intermediate, int Position)
{
    if (Position == Words.Count() - 1) // base case, nothing to append
    {
        Result.Add(Intermadiate);
    }
    else
    {
        GenerateResult( Intermediate + " ", Position + 1 ); // space case
        GenerateResult( Intermediate + "-", Position + 1 ); // hyphen case
    }
}