C#中如何将输入字符串转换为大写
How to convert an input string to uppercase in c#
string choice = String.ToUpper(Console.ReadLine());
我想输入一个字符串并将其转换为大写。但是,有一个错误指出:
cannot convert from 'string' to System.Globalization.CultureInfo'
当我将鼠标悬停在 Console.ReadLine()
上时出现。为什么这不起作用,有什么修复方法?还有其他方法吗?
String.ToUpper
是一个实例方法,这意味着你必须使用它 "on" 你的字符串:
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??!
An object reference is required for the non-static field, method, or
property 'string.ToUpper(CultureInfo)
仅当 static
时,才可以在没有类型实例的情况下使用方法。
这样不行。
string choice = Console.ReadLine().ToUpper();
ToUpper 方法属于字符串class。它采用 System.Globalization.CultureInfo.
类型的参数
你可以这样写:
字符串选择=Console.ReadLine().ToUpper();
也许你可以试试这个:
static void Main(string[] args)
{
string input = Console.ReadLine();
string choice = 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'... 此算法也适用。但要小心!这只适用于英文字母!然后我将 current
(ASCII 值)减为 32。我将它转换回一个字符并将其添加到 string output
。在 for
循环后
希望对您有所帮助。 :D
string choice = String.ToUpper(Console.ReadLine());
我想输入一个字符串并将其转换为大写。但是,有一个错误指出:
cannot convert from 'string' to System.Globalization.CultureInfo'
当我将鼠标悬停在 Console.ReadLine()
上时出现。为什么这不起作用,有什么修复方法?还有其他方法吗?
String.ToUpper
是一个实例方法,这意味着你必须使用它 "on" 你的字符串:
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??!
An object reference is required for the non-static field, method, or property 'string.ToUpper(CultureInfo)
仅当 static
时,才可以在没有类型实例的情况下使用方法。
这样不行。
string choice = Console.ReadLine().ToUpper();
ToUpper 方法属于字符串class。它采用 System.Globalization.CultureInfo.
类型的参数你可以这样写:
字符串选择=Console.ReadLine().ToUpper();
也许你可以试试这个:
static void Main(string[] args)
{
string input = Console.ReadLine();
string choice = 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'... 此算法也适用。但要小心!这只适用于英文字母!然后我将 current
(ASCII 值)减为 32。我将它转换回一个字符并将其添加到 string output
。在 for
循环后
希望对您有所帮助。 :D