4

文字列内の特定の文字の色を、特定の色で変更するにはどうすればよいかを尋ねたいです。

例えば:

string letters = "Hello World";  //The string inputted.

「こんにちは」の「お」を赤に変えたいです。それ、どうやったら出来るの?そんなこと知ってる

Console.Foreground = ConsoleColor.Red;

文字列全体を赤に変更します。特定の文字を特定の色に変更するのに最適なコードは何ですか? 前もって感謝します!

4

3 に答える 3

8

最も簡単な解決策は

var o = letters.IndexOf('o');
Console.Write(letters.Substring(0, o));
Console.ForegroundColor = ConsoleColor.Red;
Console.Write(letters[o]);
Console.ResetColor();
Console.WriteLine(letters.Substring(o + 1));

これを、色付けしたい任意の文字列または文字に対して機能する関数に一般化することもできます。

void WriteLineWithColoredLetter(string letters, char c) {
  var o = letters.IndexOf(c);
  Console.Write(letters.Substring(0, o));
  Console.ForegroundColor = ConsoleColor.Red;
  Console.Write(letters[o]);
  Console.ResetColor();
  Console.WriteLine(letters.Substring(o + 1));
}

もう 1 つのオプションは、次の文字を赤で出力することを意味するような文字列を使用し"Hell&o World"て解析することです。&

于 2012-06-22T04:50:56.433 に答える
1
string letters = "Hello World";
Char[] array = letters.ToCharArray();

foreach (Char c in array)
{
    if (c == 'o')
    {
        Console.ForegroundColor = System.ConsoleColor.Red;
        Console.Write(c);
    }
    else
    {
        Console.ForegroundColor = System.ConsoleColor.White;
        Console.Write(c);
    }
}
Console.WriteLine();
Console.Read();
于 2012-06-22T04:53:59.103 に答える