如何检查字符串的内容及其长度?

时间:2018-10-20 15:45:25

标签: c# string

基本上,我正在尝试编写游戏,例如在控制台中具有3个插槽的累积奖金。根据用户输入,将授予用户。但是首先,我需要用户编写正确的字符串,如果用户输入了不同的字符串,程序将重新询问输入。用户可以输入以下3个: X,Y,Z,x,y,z和J。 用户输入的一些示例:XyZ,XXJ,ZJy ... 而且我需要检查用户输入的长度是否为3个字符长,并使用循环和if-else语句包含XYZxyzJ。任何帮助,将不胜感激! 编辑:我的代码现在看起来像这样:

string input;
string pattern = @"[xXyYzZJ]+";

// Taking the input from the user and defining variables
input = Convert.ToString(Console.ReadLine());

int properLength = input.Length;
bool properInput = Regex.IsMatch(input, pattern);

bool check;
if (properLength == 3)
    check = true;
else
    check = false;

if (properInput == true) ;
else
    properInput = false;

Console.WriteLine(check);    // These 2 are for debugging purposes, will not present in final product

Console.WriteLine(properInput);

现在我想继续游戏的第二部分,但是我很难使这段代码循环。任何想法,如果布尔的propertyInput和check为true,我怎么循环这段?

2 个答案:

答案 0 :(得分:0)

看起来您需要这样的东西

var pattern = "^[xXyYzZ]{3}$";  // note new pattern
var input = Console.ReadLine();

while (!Regex.IsMatch(input.Trim(), pattern);)
{
    Console.WriteLine("YOU LOST");
    Console.WriteLine("Do it again");
    input = Console.Readline();        
}

Console.WriteLine("YOU WON");

我尚未测试(c#;正则表达式已测试),但看起来正确-您使用正则表达式来确保只有xyz包含在字符串中,并且是否包含3长。然后循环播放,直到用户输入匹配为止

答案 1 :(得分:-1)

要检查字符串长度,请执行以下操作:

string text = "abc";
int textLength = text.Length; // Will have value equal 3

要检查输入文本是否包含特定字符(在您的情况下为x,X,y,Y,z,Z和J),请使用{strong> Regex (正则表达式) }命名空间。例如:

System.Text.RegularExpression

在此示例中,isMatch1将具有string text1 = "abc"; string text2 = "XyZ"; string pattern = @"[xXyYzZJ]+"; bool isMatch1 = Regex.IsMatch(text1, pattern); // false bool isMatch2 = Regex.IsMatch(text2, pattern); // true ,isMatch2将具有false值。