【问题标题】:How do I use char with strings in C#? [duplicate]如何在 C# 中将 char 与字符串一起使用? [复制]
【发布时间】:2019-02-23 18:49:03
【问题描述】:

所以我所做的示例代码在这里:

        char regular = 'r';
        char premium = 'p';
        Console.WriteLine("Please enter your service (r or p:");

我试图让用户为他们拥有的服务输入 r 或 p,但我不知道在“Console.WriteLine”下放置什么以使其与我输入的 char 数据类型一起工作.我该如何解决?

另外,特别是为了输入您的服务,它必须是字符,所以说我正在处理的问题。

edit*:我尝试过使用类似...

Console.Writeline("Please enter your service(r or p):")'
r= Convert.ToInt32(Console.ReadLine());

但是因为它是 char,所以我有一个问题,我只是不完全确定如何以一种可以让用户输入 r 或 p 的方式实现它

谢谢!

【问题讨论】:

  • 我不明白,您在“Console.WriteLine”下尝试过什么?一般来说,您可以将char 与字符串一起使用,例如"foo" + regular。但我不知道你想在这里实现什么。
  • char c = Console.ReadLine()[0];
  • 你可以使用这个循环:char[] allowedChars = {regular, premium}; char selected; while (!allowedChars.Contains(selected = Console.ReadKey().KeyChar)) Console.WriteLine("\nPlease enter either r for regular or p for premium:");
  • 问题是询问两种不同的服务,并让用户输入常规或高级,并且它必须是字符。我试过使用一个整数变量,但是因为它没有被转换,所以我得到了一个错误,最终,我必须添加每个的服务成本,并且我需要使用整数。
  • 这是问题所在:

标签: c# char integer


【解决方案1】:

我建议使用string 而不是char。比如:

string regular = "r";
string premium = "p";
Console.WriteLine("Please enter your service (r or p:");
var input = Console.ReadLine();
if (input == regular )
{
    //your reg logic here
}
else if (input == premium)
{
   // your premium logic here
}
else
{
   //handle case that none of above entered
}

【讨论】:

  • 不幸的是,作业需要特定的字符,但感谢您的输入,我会用它来帮助理解:)
【解决方案2】:

您可以使用Console.ReadKey() 向用户请求单个字符的输入

这将返回一个 ConsoleKeyInfo 对象,该对象具有一个 KeyChar 属性,该属性将为您提供一个字符

char regular = 'r';
char premium = 'p';
Console.WriteLine("Please enter your service (r or p:");

var keyEntered = Console.ReadKey();
Console.WriteLine("\nYou chose " + keyEntered.KeyChar);

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 2020-04-23
    • 2015-07-04
    • 2021-08-16
    • 2019-06-25
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多