gpt4 book ai didi

c# - "Operator ' == ' cannot be applied to operands of type ' 字符 ' and ' 字符串 '"

转载 作者:太空狗 更新时间:2023-10-29 22:36:57 26 4
gpt4 key购买 nike

我在这个网站上搜索过类似的问题,但我发现的问题对我不起作用。很抱歉询问答案是否在某处,但我一直找不到。如果我做错了什么,请通过询问让我知道。

我正在用 C# 制作刽子手。我所做的是让程序从数组中选择一个随机字符串,制作一个猜测字母的数组(它最初用'_'填充,只要单词是)。然后应该获取用户输入的字母,查看该字母是否在单词中,如果是,则将该字母添加到猜测的字母数组中。我被困在这部分:

if (gameWord.Contains(guessedLetter)) 
{
//for every character in gameWord
for (int x = 0; x < gameWord.Length; x++)
{
//if the character at the 'x' position in gameWord is equal to the guessed letter
if (gameWord[x] == guessedLetter)
{
//guessString at that x position is equal to the guessed letter
guessString[x] = guessedLetter;
}
}

}

在“if (gameWord[x] == guessedLetter)”处,我收到标题中显示的错误。

gameWord 是从字符串数组中选择的字符串,guessedLetter 是用户使用 Console.ReadLine(); 输入的字符串。

最佳答案

如果 guessedLetter 是一个 string,那么您需要将一种类型更改为另一种类型。您可以轻松地获取 guessedLetter 的第一个字符:

if (gameWord[x] == guessedLetter[0])

或按照其他答案的建议在 gameWord[x] 上调用 ToString()

但是,您将遇到一个大得多 的问题。 [] 是只读操作 ( MSDN ),因为字符串是不可变的,因此您的下一行(赋值)将失败。

为此,您需要一个 StringBuilder:

StringBuilder sb = new StringBuilder(gameWord);
sb[index] = guessedLetter[0];
gameWord = sb.ToString();

归功于 Replacing a char at a given index in string?对于该代码。

关于c# - "Operator ' == ' cannot be applied to operands of type ' 字符 ' and ' 字符串 '",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28121389/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com