我该怎么用来将字符串转换为unicode

时间:2017-01-25 22:30:35

标签: c# string unicode console.readline

我遇到了这段代码的问题。

        Console.WriteLine("What is your name?");
        string PlayerName = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine(PlayerName);

我尝试做的是让计算机读取您输入的名称,并询问您这是否是您的名字。直到我输入我的名字后,虽然有例外。转换.ToInt32不是我应该使用的,我想我的问题是我在那里放什么。

我是编程新手,我甚至不确定它是否被称为unicode。遗憾。

4 个答案:

答案 0 :(得分:2)

Console.ReadLine()将返回一个字符串,无需进行任何转换:

    Console.WriteLine("What is your name?");
    string PlayerName = Console.ReadLine();
    Console.WriteLine(PlayerName);

答案 1 :(得分:2)

如果你没有在其中传递有效的整数值,

Convert.ToInt32()抛出错误。因此,您需要优雅地检查它并获得整数值。为此,您可以Int32.TryParse(input, out val)获取整数值。

前:

int value;
if(Int32.TryParse(your_input, out value))
{
// if pass condition, then your input is integer and can use accordingly
}

因此,如果您只想打印整数值,那么您的程序将是这样的:

    Console.WriteLine("What is your name?");
    var value = Console.ReadLine();
    int intVal;
    if(Int32.TryParse(value, out intVal))
    {
        Console.WriteLine(intVal);
    }

如果您只想打印ReadLine方法中的内容,您可以:

  Console.WriteLine("What is your name?");
  Console.WriteLine(Console.ReadLine());

答案 2 :(得分:1)

Convert.ToInt32(String)"将指定的数字字符串表示形式转换为等效的32位有符号整数"。您收到错误是因为您没有在控制台中输入整数值。

您的PlayerName变量属于string类型,Console.ReadLine()的返回值已经是string,因此您无需进行任何转化。< / p>

答案 3 :(得分:0)

如果您正在处理Unicode字符,则可能必须设置正确的编码

Console.InputEncoding = Encoding.Unicode;
Console.OutputEncoding = Encoding.Unicode;

Console.WriteLine("What is your name?");
string PlayerName = Console.ReadLine();
Console.WriteLine(PlayerName);