VB.Net / C # Spintax помогите? - PullRequest
       10

VB.Net / C # Spintax помогите?

0 голосов
/ 02 декабря 2011

Может ли кто-нибудь дать мне пример фрагмента spintax для языка программирования C # / VB.NET. Если вы не знаете, что это такое (spintax), то, по сути, это способ задания различных значений строк, а затем случайного выбора одного из них. Например:

{Hello|Hi|Greetings} my name is {Tom|John|Eaven} and I like {turtles|programming|ping pong}.

И он будет выбирать между {} разбиением этих строк внутри {} строки с разделителем | поэтому он случайным образом выводит окончательную строку.

1 Ответ

5 голосов
/ 02 декабря 2011

Вот класс для C #, который обрабатывает этот фрагмент:

public class Spinner
{
    private static Random rnd = new Random();
    public static string Spin(string str)
    {
        string regex = @"\{(.*?)\}";
        return Regex.Replace(str, regex, new MatchEvaluator(WordScrambler));
    }
    public static string WordScrambler(Match match)
    {
        string[] items = match.Value.Substring(1, match.Value.Length - 2).Split('|');
        return items[rnd.Next(items.Length)];
    }
}

И попробуйте:

Console.WriteLine(Spinner.Spin("{Hello|Greetings|Merhaba} World, My name is {Beaver|Michael} Obama"));

Вот полная статья: http://jeremy.infinicastonline.com/2010/11/spintax-class-for-c-net/

...