如何在c#中将输入字符串转换为大写

时间:2016-05-09 09:30:24

标签: c# console-application

string choice = String.ToUpper(Console.ReadLine());

我想输入一个字符串并将其转换为大写字母。但是,有一个错误表明:

  

无法转换为' string'到System.Globalization.CultureInfo'

当我将鼠标悬停在Console.ReadLine()上时显示

。为什么这不起作用,有什么修正?还有另一种方法吗?

4 个答案:

答案 0 :(得分:3)

String.ToUpper是一个实例方法,这意味着你必须在你的字符串上“使用它”:

string input = Console.ReadLine();
string choice = input.ToUpper();

否则您使用the overload来获取CultureInfo个对象。由于String无法转换为System.Globalization.CultureInfo,因此会出现编译错误。但它无论如何都会产生误导,你不能在没有实例的情况下使用实例方法,因此会产生另一个错误:

String.ToUpper(CultureInfo.CurrentCulture);  // what string you want upper-case??!
  

非静态字段,方法或者需要对象引用   property'tring.ToUpper(CultureInfo)

只有在static的情况下才能使用没有类型实例的方法。

答案 1 :(得分:0)

它不会这样。

string choice = Console.ReadLine().ToUpper();

ToUpper方法属于String类。它采用System.Globalization.CultureInfo类型的参数。

答案 2 :(得分:0)

你可以写:

string choice = Console.ReadLine()。ToUpper();

答案 3 :(得分:0)

也许你可以试试这个:

static void Main(string[] args)
{
    string input = Console.ReadLine();

    Console.WriteLine(Capitalize(input);
    Console.ReadKey();
}

string Capitalize(string word)
{
    int current = 0;
    string output = "";

    for(int i = 0; i < word.Length, i++)
    {
        current -= (int)word[i];
        current -= 32;
        output += (char)current;
    }

    return output;
}

我的所作所为:

我从用户那里得到了一个输入。我们假设它是一个小写字。我将其中的每个字符转换为int(我得到ASCII代码)并将其放入int current。例如'a'= 97(ASCII码),'A'是65.所以'A'小于'a',ASCII码为32。对于'b'和'c'......这个算法也有效。但要小心!这仅适用于英文字母!然后我用32减去current(ASCII值)。我将它转换回一个字符并将其添加到string output。在for循环

之后

我希望它有所帮助。 :d