c# - ToCharArray 生成两组数字而不是一组

标签 c#

您好,我正在尝试将一个字符串拆分为一个字符数组,但由于某种原因,结果不是我所期望的。我通过了调试器抛出的这段代码,并给了它字符串“34325”。当我出于某种原因,到达将字符串转换为字符数组的代码部分,我可以在调试器中看到两组字符。我得到如下信息:

字符[0] = 51 '3' 字符 [1] = 52 '4' 字符 [2] = 51 '3' 字符 [3] = 50 '2' 字符[4] = 53 '5'

然后当我将 char 数组的每个元素转换为 int 时,第一个数字总是采用:51、52、51、50、53。

我的问题是如何更正此问题以便得到 3 、 4 、 3 、 2 、 5? 还有,当我使用 toCharArray() 方法时,这些数字是从哪里来的:51 ,52 ,51 ,50 53?

这是我的代码:

    value = TextBox1.Text;

    char[] numberChars = value.ToCharArray();
    int[] numbers = numberChars.Select(x => Convert.ToInt32(x)).ToArray();

    for( int i = 0; i < numbers.Length; i++ ) {
        TextBox2.Text += numbers[i] + " ";
    }

最佳答案

如果我没有正确理解你的问题,你想将字符串拆分成代表数字的整数,如下所示:"34325" 变成 new int[] {3,4, 3,2,5}.

如下更改代码,将表示数字的每个字符解释为一位数:

 int[] numbers = numberChars.Select(x => ((int)x)-'0').ToArray();

这是一个link to a demo on ideone .

您看到数字 5152 等的原因是您看到了相应数字的 ASCII 代码。

关于c# - ToCharArray 生成两组数字而不是一组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13223109/

相关文章:

c# - 在 C# 中显示完整的 SSH shell 输出,包括登录消息和提示

c# - 这是一个危险的锁定模式吗?

c# - 带参数的本地化错误消息

c# - 如何仅使用单个 Alt 修饰符检测按键

c# - 插入后如何处理 Entity Framework 记录对象?

c# - 根据 .NET backgroundworker 的结果更新变量

c# - 无法将带 [] 的索引应用于类型 'object' 的表达式

c# - 在 UWP 中将 Entity Framework 与 SQL Server 结合使用

c# - 应用程序关闭时的 UWP 进程内后台任务

C# 单管道语法