在C#中将字符串转换为整数

17 浏览
0 Comments

在C#中将字符串转换为整数

我正在尝试编写一个简单的程序,要求用户输入一个数字,然后我将使用该数字来决定他们的年龄对应的门票价格。在尝试将字符串转换为整数时遇到了问题。除此之外,程序布局是正确的。有什么建议吗?

谢谢

0
0 Comments

在C#中,将字符串转换为整数可能会遇到一些问题。为了解决这个问题,可以使用int.TryParse()方法,并且还应该注意在条件语句中使用&&而不是&。

int.TryParse()方法是一个用于将字符串转换为整数的方法,它不会抛出异常。通过使用这个方法,可以避免在转换过程中可能引发的异常。

另外,在条件语句中使用&&而不是&也是很重要的。&&是逻辑与运算符,而&是按位与运算符。在条件语句中,应该使用逻辑与运算符&&来进行逻辑与操作。

以下是使用int.TryParse()方法和正确的逻辑与运算符&&的示例代码:

string numberString = "123";
int number;
if (int.TryParse(numberString, out number) && number > 0)
{
    Console.WriteLine("The number is positive.");
}

在这个示例中,首先将字符串"123"转换为整数。然后,使用条件语句来检查转换是否成功,并且转换后的整数是否大于0。如果满足这两个条件,就会输出"The number is positive."。

通过使用int.TryParse()方法和正确的逻辑与运算符&&,我们可以避免在转换字符串为整数时可能导致的异常,并且可以确保条件语句的逻辑正确性。

0
0 Comments

在C#中,将字符串转换为整数的问题可能出现的原因是使用了错误的方法或运算符。解决这个问题的方法是使用相应整数类型的`.TryParse(inputstring, yourintegervariable)`方法,并正确使用逻辑与运算符`&&`。

在C#中,为了方便将字符串解析为整数(以及其他数字类型),可以使用相应数字类型的`.TryParse(inputstring, yourintegervariable)`方法。该方法会输出一个布尔值(True/False),告知您操作是否成功。如果结果为False,您可以在继续之前提供错误信息(无需担心程序崩溃)。

在C#中,需要使用逻辑与运算符`&&`进行逻辑与操作。`&`不同于`&&`,可能无法按您期望的方式工作。

在这里,我不明白为什么要使用switch语句,因为它不能用于范围(您是在想Visual Basic吗?)。当然,您可以使用空case穿透,但是考虑到示例程序需要55个case语句加上一个default来实现这一点,您真的认为这是一个更好的方法吗?

我本以为switch语句允许使用范围。经过仔细检查后,发现事实并非如此。感谢您提醒我这个问题 🙂

逻辑与运算符`&`和`&&`都是一种逻辑与运算符。`&`是真正的逻辑与运算符,`&&`是条件逻辑与运算符。当`&`总是评估两个操作数时,`&&`只有在左操作数评估为真时才评估右操作数。因此,使用哪个运算符取决于具体情况。如果操作数没有副作用,并且操作数之间没有依赖关系,则它们是等效的(但`&&`可能可以节省一些操作)。

0
0 Comments

在这个问题中,出现的原因是需要将字符串转换为整数。解决方法是使用C#中的Int32.TryParse()方法。

以下是解决方法的示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
static class TicketPrice
{
    private static readonly IList> AgeAdmissionMap =
        new List>
            {
                new KeyValuePair(0, "FREE!"),
                new KeyValuePair(5, "$5."),
                new KeyValuePair(18, "$10."),
                new KeyValuePair(56, "$8.")
            };
    public static void Main(String[] args)
    {
        Console.WriteLine("Please Enter Your Age!");
        UInt32 age;  
        while (!UInt32.TryParse(Console.ReadLine(), out age)) { }
        String admission = TicketPrice.AgeAdmissionMap
            .OrderByDescending(pair => pair.Key)
            .First(pair => pair.Key <= age)
            .Value;
        Console.WriteLine(String.Format(
            "You are {0} and the admission is {1}",
            age,
            admission));
    }
}

在这段代码中,我使用了无符号整数来防止输入负数的年龄,并将输入放入循环中。这样用户可以纠正无效的输入。

通过使用Int32.TryParse()方法和适当的重构,我们可以更清晰地实现字符串转换为整数的功能。

0