0

Spintax 用于从一个片段中获取多个内容,例如:Spintax: The {dog|cat} {ran|jumped} very {quietly|far {ahead|away}}。那会返回这样
的句子:狗跑得很安静。
猫跳得很安静。
那条狗跳得很远。
猫跑得很远。

我想出了如何将 spintax 变成随机的不同句子,但我现在想用颜色显示 spintax(在富文本框中)。我的意思是 {} 和 {} 本身之间的一切都是不同的颜色(蓝色)。当其他 {} 中有 {} 时,它将是另一种颜色(绿色)。在生成句子时,我从最深的括号(其中没有任何其他 {} 的 {})开始。我认为对于着色我必须从外面开始,但我不知道如何。谁能帮我?

4

1 回答 1

0

您可以执行以下操作:

var input = "hello {one {two}} there";
var depth = 0;
for (int index = 0; index < input.Length; index++)
{
    if (input[index]==('{'))
        depth++;
    else if (input[index]==('}'))
        depth--;

    // depending on your depth, use whatever color you want
    // maybe have an array of colors "color_array", and just
    // use color_array[depth] to get your color
}

你必须看看你的最终情况以及你如何处理{}颜色,但你应该能够从这里继续。

于 2014-08-23T00:28:24.487 回答