📜  c# readline char - C# (1)

📅  最后修改于: 2023-12-03 15:13:49.537000             🧑  作者: Mango

C# ReadLine Char

ReadLine() 方法是一个常用的控制台输入方法,它能够读取用户在命令行输入的字符串。如果开发者需要读取单个字符,则可以使用 ReadKey() 方法。但是,这种方法需要用户按下回车键才能执行。

如果开发者需要在控制台中实时输入字符,而不用等待用户按下回车键,那么就需要使用 ReadLine() 方法的一个重载版本:Read() 方法。

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方法

ReadLine() 方法以字符串形式读取从控制台输入的字符序列,直到用户按下回车键为止。但是,它同样也只能够读取单个字符。为此,需要使用 Substring() 方法来提取字符序列中的第一个字符。

string line = Console.ReadLine();
char ch = line.Substring(0, 1)[0];

然而,要注意字符串为 null 或者长度为 0 的情况,因此在实际使用时需要添加相应的输入验证。

总结

在 C# 中,Read() 方法和 ReadLine() 方法都可以用于控制台中单字符和单行输入的获取。为了方便和输入验证的考虑,实际开发中更常使用后者。开发者可以根据自己的需求选择合适的方法进行实现。