我如何将输入作为两个不同的答案来阅读

本文关键字:两个 答案 输入 | 更新日期: 2023-09-27 17:59:01

假设我得到以下问题

Console.WriteLine("哪些球队面对面?-使用红蓝格式");

那么我对以上问题的回答将有两个团队。但是怎么能把它们看作是两个分开的呢?所以我只读[红][蓝],但中间的"vs"部分似乎在那里。

我希望我的你能理解我想说的话。我的英语不太好。

向致以最良好的问候

ps,正如你所知,我对编程很陌生。

edit:哦,这都在C#中

我如何将输入作为两个不同的答案来阅读

您可以使用String.Split():

var answers = userInput.Split(new String[] { "vs" }, StringSplitOptions.RemoveEmptyEntries);
if (answers.Length == 2) {
    var red = answers[0];
    var blue = answers[1];
}

有很多选项可以使用Split函数使其成为数组并删除"vs"或者简单地使用String.Replace("vs",")函数将"vs"字符串替换为空值。

您可以尝试使用正则表达式:

Match m = Regex.Match("^(?<team1>'.+) vs (?<team2>'.+)$", userInput);
if (m.Success)
{
    string team1 = m.Groups["team1"].Value;
    string team2 = m.Groups["team2"].Value;
}

请注意,这在语法上可能不是100%正确的——你必须参考一下IntelliSense——例如,我不确定模式是Match中的第一个参数还是第二个参数,但我相信你已经明白了。

U可以将所有字符串读取为一个字符串,然后用"vs"分隔符进行拆分,然后ull获取需要的2个字符串的表

按照其他人的建议使用String.Split函数。这将把你的字符串分割成一个字符串数组。然后,确定数组中的哪个字符串是"vs"字符串。取"vs"之前和"vs"之后的索引值。例如:

string input = "Which teams have faced eachother? - use Red vs Blue format";
string[] inputArray = input.Split( ' ' );
int vsLocation = 0;
for ( int i = 0; i < inputArray.Length; i++ ) {
    if ( inputArray[i] == "vs" ) {
        vsLocation = i;
        break;
    }
}
if ( vsLocation > 0)  {
    string team1 = inputArray[vsLocation - 1];
    string team2 = inputArray[vsLocation + 1];
}