首页 > 解决方案 > char 数组返回值,如 50'w'

问题描述

语言 =C# 软件 = Visual Studio 2015

在编写程序以查找给定字符串中的整数总和时,我遇到了问题。在从字符串中获取每个字符时,我得到的值就像87'W',101'e'而不是'w', 'e'。(也显示相应的 char 整数,这不是必需的)

程序:

public static void Main()     
{     
     string s = "Welcome to 2018";     
     int sumofInt = 0;     
       for (int i = 0; i < s.Length; i++)     
       {     
           if (Char.IsDigit(s[i]))     
           {     
               sumofInt += Convert.ToInt32(s[i]);     
           }     
       }     
    Console.WriteLine(sumofInt);     

}   

预期 o/p = 11 实际 o/p = 203

这里的s[i]价值来了,例如50'2'

有什么办法可以避免这种字符的数字表示(50、87 等)??? (不修剪)

标签: c#visual-studio-2015char

解决方案


试试这个:-您将 char 的 ASCII 表示形式作为整数

public static void Main()     
{     
     string s = "Welcome to 2018";     
     int sumofInt = 0;     
       for (int i = 0; i < s.Length; i++)     
       {     
           int val = (int)Char.GetNumericValue(s[i]);
           if (Char.IsDigit(val))     
           {     
               sumofInt += Convert.ToInt32(val);     
           }     
       }     
    Console.WriteLine(sumofInt);     

}   

推荐阅读