C# 检查字符串中是否存在字符串,以及是否更改了该字符串中的字母
我正在制作一个刽子手游戏。这是一个双人游戏,一个玩家在文本框中输入一个单词。该单词以问号显示 例如: 单词C# 检查字符串中是否存在字符串,以及是否更改了该字符串中的字母,c#,string,C#,String,我正在制作一个刽子手游戏。这是一个双人游戏,一个玩家在文本框中输入一个单词。该单词以问号显示 例如: 单词Hello将在文本框中显示为?? 我遇到的问题是,当玩家猜到一个字母时,如何更改文本框中的文本。如果玩家猜到文本框中的“H”并输入它,我希望其他文本更改为H???。如何做到这一点?您可以使用如下BuildMask()方法。当第一个文本框中的文本发生变化时,将其字符添加到哈希集中,调用BuildMask,然后将结果放入第二个文本框。如果你想不区分大小写,你可以在hashset构造函数中添加一个
Hello
将在文本框中显示为??
我遇到的问题是,当玩家猜到一个字母时,如何更改文本框中的文本。如果玩家猜到文本框中的“H”并输入它,我希望其他文本更改为H???
。如何做到这一点?您可以使用如下BuildMask()方法。当第一个文本框中的文本发生变化时,将其字符添加到哈希集中,调用BuildMask,然后将结果放入第二个文本框。如果你想不区分大小写,你可以在hashset构造函数中添加一个IEqualityComparer,如果你用谷歌搜索它,你可以找到解决方案
static void Main(string[] args)
{
var guessThis = "Hello";
var letters = new HashSet<char>();
Console.WriteLine(BuildMask(guessThis, letters));
letters.Add('l');
Console.WriteLine(BuildMask(guessThis, letters));
letters.Add('H');
Console.WriteLine(BuildMask(guessThis, letters));
}
static string BuildMask(string toGuess, HashSet<char> letters)
{
var result = new StringBuilder();
foreach (var c in toGuess)
{
if (letters.Contains(c))
result.Append(c);
else
result.Append('?');
}
return result.ToString();
}
static void Main(字符串[]args)
{
var guessThis=“你好”;
var letters=newhashset();
Console.WriteLine(BuildMask(猜这个,字母));
字母。添加('l');
Console.WriteLine(BuildMask(猜这个,字母));
字母。添加('H');
Console.WriteLine(BuildMask(猜这个,字母));
}
静态字符串构建掩码(字符串toGuess、HashSet字母)
{
var result=新的StringBuilder();
foreach(变量c在toGuess中)
{
如果(字母包含(c))
结果:追加(c);
其他的
结果.追加('?');
}
返回result.ToString();
}
您可以使用如下BuildMask()方法。当第一个文本框中的文本发生变化时,将其字符添加到哈希集中,调用BuildMask,然后将结果放入第二个文本框。如果你想不区分大小写,你可以在hashset构造函数中添加一个IEqualityComparer,如果你用谷歌搜索它,你可以找到解决方案
static void Main(string[] args)
{
var guessThis = "Hello";
var letters = new HashSet<char>();
Console.WriteLine(BuildMask(guessThis, letters));
letters.Add('l');
Console.WriteLine(BuildMask(guessThis, letters));
letters.Add('H');
Console.WriteLine(BuildMask(guessThis, letters));
}
static string BuildMask(string toGuess, HashSet<char> letters)
{
var result = new StringBuilder();
foreach (var c in toGuess)
{
if (letters.Contains(c))
result.Append(c);
else
result.Append('?');
}
return result.ToString();
}
static void Main(字符串[]args)
{
var guessThis=“你好”;
var letters=newhashset();
Console.WriteLine(BuildMask(猜这个,字母));
字母。添加('l');
Console.WriteLine(BuildMask(猜这个,字母));
字母。添加('H');
Console.WriteLine(BuildMask(猜这个,字母));
}
静态字符串构建掩码(字符串toGuess、HashSet字母)
{
var result=新的StringBuilder();
foreach(变量c在toGuess中)
{
如果(字母包含(c))
结果:追加(c);
其他的
结果.追加('?');
}
返回result.ToString();
}
检查此完整代码
public partial class MainWindow : Window
{
string CurrentString = null;
string modifiedstring = null;
public MainWindow()
{
InitializeComponent();
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var textBox = sender as TextBox;
string value = textBox.Text.Replace("\r\n", "").Replace("\n", "").Replace("\r", "");
if (null != CurrentString)
{
if (CurrentString.Contains(value))
{
StringBuilder newstring = new StringBuilder();
foreach (char c in CurrentString)
{
if (value.ToLower().Equals(c.ToString()))
{
newstring.Append(value);
}
else
{
newstring.Append("?");
}
}
modifiedstring = newstring.ToString();
text1.Text = modifiedstring;
}
}
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
var textBox = sender as TextBox;
string value = textBox.Text.Replace("\r\n", "").Replace("\n", "").Replace("\r", "");
CurrentString = value;
StringBuilder newstring = new StringBuilder();
for (int i = 0; i < value.Length; i++)
{
newstring.Append("?");
}
textBox.Text = newstring.ToString();
}
}
}
}
公共部分类主窗口:窗口
{
字符串CurrentString=null;
字符串modifiedstring=null;
公共主窗口()
{
初始化组件();
}
私有void TextBox\u TextChanged(对象发送者,textchangedventargs e)
{
var textBox=发送方作为textBox;
字符串值=textBox.Text.Replace(“\r\n”,”).Replace(“\n”,”).Replace(“\r”,”);
如果(null!=CurrentString)
{
if(CurrentString.Contains(value))
{
StringBuilder newstring=新的StringBuilder();
foreach(CurrentString中的字符c)
{
if(value.ToLower().Equals(c.ToString()))
{
newstring.Append(值);
}
其他的
{
新闻字符串。追加(“?”);
}
}
modifiedstring=newstring.ToString();
text1.Text=modifiedstring;
}
}
}
私有void文本框\u KeyDown(对象发送方,KeyEventArgs e)
{
如果(e.Key==Key.Enter)
{
var textBox=发送方作为textBox;
字符串值=textBox.Text.Replace(“\r\n”,”).Replace(“\n”,”).Replace(“\r”,”);
CurrentString=值;
StringBuilder newstring=新的StringBuilder();
for(int i=0;i
检查此完整代码
public partial class MainWindow : Window
{
string CurrentString = null;
string modifiedstring = null;
public MainWindow()
{
InitializeComponent();
}
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
var textBox = sender as TextBox;
string value = textBox.Text.Replace("\r\n", "").Replace("\n", "").Replace("\r", "");
if (null != CurrentString)
{
if (CurrentString.Contains(value))
{
StringBuilder newstring = new StringBuilder();
foreach (char c in CurrentString)
{
if (value.ToLower().Equals(c.ToString()))
{
newstring.Append(value);
}
else
{
newstring.Append("?");
}
}
modifiedstring = newstring.ToString();
text1.Text = modifiedstring;
}
}
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter)
{
var textBox = sender as TextBox;
string value = textBox.Text.Replace("\r\n", "").Replace("\n", "").Replace("\r", "");
CurrentString = value;
StringBuilder newstring = new StringBuilder();
for (int i = 0; i < value.Length; i++)
{
newstring.Append("?");
}
textBox.Text = newstring.ToString();
}
}
}
}
公共部分类主窗口:窗口
{
字符串CurrentString=null;
字符串modifiedstring=null;
公共主窗口()
{
初始化组件();
}
私有void TextBox\u TextChanged(对象发送者,textchangedventargs e)
{
var textBox=发送方作为textBox;
字符串值=textBox.Text.Replace(“\r\n”,”).Replace(“\n”,”).Replace(“\r”,”);
如果(null!=CurrentString)
{
if(CurrentString.Contains(value))
{
StringBuilder newstring=新的StringBuilder();
foreach(CurrentString中的字符c)
{
if(value.ToLower().Equals(c.ToString()))
{
newstring.Append(值);
}
其他的
{
新闻字符串。追加(“?”);
}
}
modifiedstring=newstring.ToString();
text1.Text=modifiedstring;
}
}
}
私有void文本框\u KeyDown(对象发送方,KeyEventArgs e)
{
如果(e.Key==Key.Enter)
{
var textBox=发送方作为textBox;
字符串值=textBox.Text.Replace(“\r\n”,”).Replace(“\n”,”).Replace(“\r”,”);
CurrentString=值;
StringBuilder newstring=新的StringBuilder();
for(int i=0;i
通过在同一文本框或其他控件中输入,用户是如何猜测的?Winforms、WPF、ASP请添加一个标记