让我们假设用户在控制台中输入了两个或几个用空格分隔的字符串。
我正在使用以下代码行将输入组织到一个数组中:
string[] inputs = Console.ReadLine().Split();
string firstName = inputs[0];
string lastName = inputs[1];
发布此文件的目的是为了更好地了解Console.ReadLine().Split();
命令。 Microsoft文档对我来说有点丢失。该命令是否读取输入并使它们被空格分隔?我以为是这种情况,因为在代码片段中,我们将索引0声明为字符串变量firstName,将索引1声明为字符串变量lastName。
我还看到此命令用作Console.ReadLine().Split(" ");
。这提供了什么不同的功能?
编辑:对于重复通知:该问题与该命令的机制以及如何将其专门放入数组有关。感谢您的回复。 “重复项”较为笼统,未能成功回答我的问题。
答案 0 :(得分:3)
这是两个不同的“操作”:Console.ReadLine()
和String.Split()
,首先从用户输入返回string
,然后将其拆分。等同于:
string input = Console.ReadLine();
string[] result = input.Split();
您可以在点运算符之后调用任意数量的方法(属性,字段等),但如果使代码可读(这在本示例中非常简单),它将更好。 >
如果未传递任何参数,则默认情况下,它是MSDN中的空白:
如果分隔符参数为null或不包含任何字符,则该方法将空格字符视为定界符。空格字符由Unicode标准定义;如果将它们传递给Char.IsWhiteSpace方法,它们将返回true。
参考: Console.Readline() , String.Split , . Operator
答案 1 :(得分:1)
从控制台读取输入
var inputs = Console.ReadLine();
用空格分隔输入字符串
var splitInputs = inputs.Split(' ');
检查拆分数组是否至少包含一个元素并获取其值
string firstName = splitInputs.Count()>0 ? splitInputs[0] : string.Empty;
检查拆分数组是否至少包含两个元素并获取其值
string lastName = splitInputs.Count() > 1 ? splitInputs[1] : string.Empty;