我正在制作一个刽子手游戏,在游戏开始时,玩家必须猜测的单词被打印为星号。在尝试编写一次并且只有我无法修复错误的困惑代码之后,我才刚刚开始重新制作它。所以我决定最好再写一遍。唯一的问题是,当我尝试使用 array.ToString(); 打印出我的数组时它只返回 System.char[]。见下文。
代码:
class Program
{
static void Main(string[] args)
{
string PlayerOneWord;
string PlayerTwoGuess;
int lives = 5;
Console.WriteLine("Welcome to hangman!\n PLayer one, Please enter the word which player Two needs to guess!");
PlayerOneWord = Console.ReadLine().ToLower();
var stars = new char[PlayerOneWord.Length];
for (int i = 0; i < stars.Length ; i++)
{
stars[i] = '*';
}
string StarString = stars.ToString();
Console.Write("Word to Guess: {0}" , StarString);
Console.ReadLine();
}
}
输出:
输出应该是猜词:你好
。
请有人解释为什么会这样,因为这不是我第一次遇到这个问题。
最佳答案
在简单数组上调用 ToString
只会返回 "T[]"
而不管 T
的类型是什么。它对 char[]
没有任何特殊处理。
要将 char[]
转换为 string
,您可以使用:
string s = new string(charArray);
但是对于您的具体问题,有一个更简单的解决方案:
string stars = new string('*', PlayerOneWord.Length);
构造函数public String(char c, int count)
重复 c
count
次。
关于c# - Array.ToString() 返回 System.Char[] c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27125430/