You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#遍历文本框输入字符后完整显示所有ASCII值的方法

解决C#中TextBox只显示最后一个字符ASCII值的问题

嘿,刚学C#就能动手写代码很棒呀!你遇到的问题其实很常见——每次循环里都把结果变量重新赋值了,之前的字符ASCII值都被覆盖掉,所以最后只留下了最后一个字符的结果。

问题原因

你的代码里每次循环都会执行类似string r = Convert.ToInt32(c).ToString();的操作(推测你没写完的部分是转成字符串),这意味着每遍历一个字符,r就会被新的值替换,之前的内容完全丢失,循环结束后r自然只有最后一个字符的ASCII值。

修改方案:累加结果而不是覆盖

我们需要初始化一个用来累加所有结果的变量,每次循环把当前字符的ASCII值追加进去,而不是替换。这里有两种简单的实现方式:

方式1:使用普通字符串拼接(适合初学理解)

// 获取输入文本
string input = textBox1.Text;
// 初始化空字符串用来存所有ASCII值
string allAsciiValues = "";

foreach (char c in input)
{
    // 转换当前字符为ASCII值
    int asciiNum = Convert.ToInt32(c);
    // 把当前ASCII值追加到结果里,加个空格分隔更易读
    allAsciiValues += asciiNum + " ";
}

// 去掉最后多余的空格(可选,让输出更整洁)
allAsciiValues = allAsciiValues.Trim();
// 把最终结果显示到TextBox2
textBox2.Text = allAsciiValues;

方式2:使用StringBuilder(更高效,适合大量字符输入)

因为C#里字符串是不可变的,每次拼接都会生成新的字符串,输入内容多的时候效率会降低。用StringBuilder可以避免这个问题:

// 记得在代码顶部添加引用
using System.Text;

string input = textBox1.Text;
StringBuilder sb = new StringBuilder();

foreach (char c in input)
{
    int asciiNum = Convert.ToInt32(c);
    // 追加ASCII值和空格
    sb.Append(asciiNum).Append(" ");
}

// 转换为字符串并去掉最后空格,然后赋值给TextBox2
textBox2.Text = sb.ToString().Trim();

这样修改后,输入abc的话,TextBox2就会显示97 98 99啦,所有字符的ASCII值都能完整展示~

内容的提问来源于stack exchange,提问作者Taylor-byte

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:32:14