📅  最后修改于: 2023-12-03 15:13:49.537000             🧑  作者: Mango
ReadLine()
方法是一个常用的控制台输入方法,它能够读取用户在命令行输入的字符串。如果开发者需要读取单个字符,则可以使用 ReadKey()
方法。但是,这种方法需要用户按下回车键才能执行。
如果开发者需要在控制台中实时输入字符,而不用等待用户按下回车键,那么就需要使用 ReadLine()
方法的一个重载版本:Read()
方法。
Read()
方法返回单个字节,因此需要将其转换为字符类型。使用 Convert.ToChar()
方法或直接将它强制转换为 char
类型来转换。
char ch = Convert.ToChar(Console.Read());
char ch = (char)Console.Read();
然而,Read()
方法会忽略换行符,因此它不能够在用户按下回车键时停止。开发者必须单独检测并处理回车。
char ch;
do
{
ch = (char)Console.Read();
Console.Write(ch);
} while (ch != '\r');
值得一提的是,因为 Read()
方法仅仅返回单个字节,如果输入的字符是 Unicode 编码,则只能返回其低 8 位。因此,要从标准输入读取 Unicode 字符,最好使用 Console.ReadLine()
方法。
ReadLine()
方法以字符串形式读取从控制台输入的字符序列,直到用户按下回车键为止。但是,它同样也只能够读取单个字符。为此,需要使用 Substring()
方法来提取字符序列中的第一个字符。
string line = Console.ReadLine();
char ch = line.Substring(0, 1)[0];
然而,要注意字符串为 null
或者长度为 0 的情况,因此在实际使用时需要添加相应的输入验证。
在 C# 中,Read()
方法和 ReadLine()
方法都可以用于控制台中单字符和单行输入的获取。为了方便和输入验证的考虑,实际开发中更常使用后者。开发者可以根据自己的需求选择合适的方法进行实现。