【问题标题】:When converting a string of numbers to int , it returns Ascii code for the string?将一串数字转换为 int 时,它返回字符串的 Ascii 代码?
【发布时间】:2016-02-06 17:00:47
【问题描述】:

我的字符串格式如下: “p100” “p231” “p000” . . .

这些字符串是按钮名称,最后 3 个字符是指 3D 数组的一个单元格,我需要将这些字符串转换为整数以获得单元格地址,我使用这个:

string str = clickedButton.Name.ToString();
int xi ;
int xj;
int xz;
xi = Convert.ToInt32(str[1]);
xj = Convert.ToInt32(str[2]);
xz = Convert.ToInt32(str[3]);

请注意,我不使用“str[0]”,因为它是“p”。

但是当我编译我的代码时,xi,xj,xz 的值是字符串字符的 Ascci 值。

我应该如何将 string 转换为 int 以使其不会发生?

【问题讨论】:

  • 我经常使用的巧妙技巧:xi = str[1] - '0';
  • 您正在将 char 转换为 int 而不是 string 转换为 int,如果您尝试 Convert.ToInt32("32") 它工作正常
  • @Dennis_E 谢谢!它有帮助。

标签: c# arrays string winforms int


【解决方案1】:

执行以下操作:

int xi = (int)Char.GetNumericValue(str[1]);

另请参阅this

【讨论】:

    【解决方案2】:

    为什么不直接格式化字符串以直接从名称中删除 p 呢?

    string str = clickedButton.Name.ToString();
    str = str.Replace("p","");
    int a = Convert.ToInt32(str);
    int onesplace = a%10;
    int secondplace = (a/10)%10;
    int thirdplace = a/100;
    

    “地点”从右到左开始。个位是最右边的数字

    如果您想要单元格的单个值,则可以将此字符串转换为整数并使用模函数

    编辑:更新代码

    【讨论】:

      【解决方案3】:

      您的代码正在跟踪该位置的字符。

      你想要的是获取该位置的字符串。

      xi = Convert.ToInt32(str.Substring(1,1));
      xj = Convert.ToInt32(str.Substring(2,1));
      xk = Convert.ToInt32(str.Substring(3,1));
      

      【讨论】:

      • 您应该添加一个解释,说明为什么这样做以及它的作用,因为代码转储很少对其他人有用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-03
      • 1970-01-01
      • 2014-01-02
      • 2016-03-02
      • 1970-01-01
      相关资源
      最近更新 更多