说我得到以下问题
Console.WriteLine(“哪些团队面对面? - 使用Red vs Blue格式”);
然后我对上述问题的回答将有两个小组。但怎么能把它们看作两个分开? 所以我只读了[红色] [蓝色],但中间的“vs”部分就在那里。
我希望我能理解我想说的话。我的英语不是很好。
最好的问候,
ps,你可以说我在编程方面很新。
编辑:哦,这一切都在C#中
答案 0 :(得分:5)
您可以使用String.Split()
:
var answers = userInput.Split(new String[] { "vs" }, StringSplitOptions.RemoveEmptyEntries);
if (answers.Length == 2) {
var red = answers[0];
var blue = answers[1];
}
答案 1 :(得分:2)
有许多选项可以使用Split函数使其成为数组并删除“vs” 或者简单地使用String.Replace(“vs”,“”)函数将“vs”字符串替换为空白值。
答案 2 :(得分:1)
您可以尝试使用正则表达式:
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
中的第一个还是第二个参数,但是我相信你能得到这张照片。
答案 3 :(得分:1)
U可以读取所有字符串然后用“vs”分隔符分割,然后ull得到你需要的2个字符串的表
答案 4 :(得分:0)
使用String.Split函数,正如其他人所建议的那样。这会将您的字符串拆分为一个字符串数组。然后,确定数组中的哪个字符串是'vs'字符串。取's'之前和'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];
}