你好堆栈溢出用户, 我已经在C#中创建了一个功能齐全的Hangman游戏,现在我在完成任务之前对最后的部分进行了抛光 我决定创造三个不同的困难" Easy" "中" "硬盘"而不是让用户选择生活量 现在问题是什么? 是否有一个函数可以将单词添加到单词列表中(然后通过方法随机选择)?我想限制用户添加到单词列表中的单词的最小和最大长度 下面是我的WordList的类。
using System;
using System.Collections.Generic;
class WordList
{
public static list <string>word = new list<string>();
public void Showwordlist()
{
word.sort();
foreach (string word in words)
{
console.WriteLine("- " + word);
}
}
public void Addwords(string input)
{
word.add(input);
}
}
答案 0 :(得分:4)
添加一项检查,看它是否符合最小长度且小于最大长度:
private int minimumLength = 4;
private int maximumLength = 20;
public void Addwords(string input)
{
if(input.Length >= minimumLength && input.Length <= maximumLength)
word.add(input);
else
MessageBox.Show("Word length must be between " + minimumLength +
@" and " maximumLength + " characters");
}
我假设界限全包,所以我使用>=
和<=
运算符。 MessageBox.Show
假设您正在使用Windows窗体。否则,请正确处理错误消息。
答案 1 :(得分:0)
喜欢这个吗?
public void Addwords(string input)
{
if(input.Length < minLength)
throw new Exception("Too Short"); // example only - throw a better exception
if(input.Length > maxLength)
throw new Exception("Too Long"); // example only - throw a better exception
word.add(input);
}
答案 2 :(得分:0)
您还可以使用RegularExpressions来限制单词中使用的字符以及长度。在下面的正则表达式中,只允许包含2到10个字符的大写和小写字母的单词。
public void Addwords(string input)
{
Match match = Regex.Match(input, "^[a-zA-Z.]{2,10}$");
if (match.Success)
{
word.add(input);
}
}