【问题标题】:Converting string to int using C#使用 C# 将字符串转换为 int
【发布时间】:2010-06-25 05:01:49
【问题描述】:

我正在使用 C#,我想将字符串转换为 int 以验证名称。例如,**12 不是名称。我只想将字符串转换为 ASCII 值,然后验证名称。我该怎么做?

【问题讨论】:

  • SO 需要拒绝任何包含字符串“wanna”的问题
  • +1 @Michael。我仍然不知道真正的问题是什么,只是根据标题本身进行了尝试。
  • 我担心你做的事情太复杂了。要验证名称不包含数字,您可以使用 string.contains() 方法,例如
  • 我的另一个 +1。相反,我根据消息的内容进行了刺伤。 :)
  • +1 来自我,问题是合法的,标题具有误导性。

标签: c#


【解决方案1】:

来回转换很简单:

int i = int.Parse("42");
string s = i.ToString();

如果您不知道输入字符串是否有效,请使用int.TryParse() 方法。

【讨论】:

    【解决方案2】:

    据我了解,您想验证给定字符串是否代表有效名称?我想说您可能应该提供更多详细信息,说明什么是您的有效名称,但我可以试一试。您总是可以遍历字符串中的所有字符,确保它们是字母或空格:

    public bool IsValidName(string theString)
    {
        for (int i = 0; i < theString.Length - 1; i++)
        {
            if (!char.IsLetter(theString[i]) && !char.IsWhiteSpace(theString[i]))
            {
                return false;
            }
        }
        return true;
    }
    

    当然,名称可以包含其他合法字符,例如撇号 ',因此您必须对其进行一些自定义,但这是我真正理解您的问题的起点。 (显然,也不是所有的空白字符都可以接受。)

    【讨论】:

    • +1 用于名称检查,尽管我个人会使用正则表达式。
    【解决方案3】:

    有多种转换方式:

    try
    {
        string num = "100";
        int value;
        bool isSuccess = int.TryParse(num, out value);
        if(isSuccess)
        {
            value = value + 1;
            Console.WriteLine("Value is " + value);
        }
    }
    catch (FormatException e)
    {
        Console.WriteLine(e.Message);
    }
    

    【讨论】:

      【解决方案4】:

      我不清楚您要做什么,但您可以使用此代码获取字符串的 ASCII 代码:

      System.Text.Encoding.ASCII.GetBytes(str)
      

      【讨论】:

        猜你喜欢
        • 2021-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多