我如何将输入作为两个不同的答案来阅读
本文关键字:两个 答案 输入 | 更新日期: 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];
}