C#中字母与ASCⅡ码的转换

目录

一、关于ASCⅡ及与字符互转

1.主要用到Encoding对象的GetBytes方法

2.Char显式转换为数值类型得到ASCⅡ

二、实例

三、生成效果 

四、程序中的一些知识点

1.IsLetterOrDigit()

2.GetBytes()

3.TryParse(string, out int)


一、关于ASCⅡ及与字符互转

        ASCⅡ(American Standard Code for Information Interchange,美国信息互换标准代码)是基于拉丁字母的编码系统,也是现今最通用的单字节编码系统。在程序设计中,可以方便地将字母转换为ASCⅡ码,也可以将ASCII码方便地转换为字母。

1.主要用到Encoding对象的GetBytes方法

        Encoding对象的GetBytes方法接收一个字符串或字符数组作为参数,最后返回字节数组,可以根据字节数组得到字母的ASCⅡ码。

string P_str_temp ="abc";
Encoding P_encoding =Encoding.GetEncoding("unicode");
byte[]P_byte =P_encoding.GetBytes(P_str_temp);
string P_str=P_byte[0].ToString();

        使用Encoding类的GetEncoding静态方法得到Encoding对象,然后调用Encoding对象的GetBytes方法,该方法接收一个字符串或字符数组作为参数,最后GetBytes方法会返回字节数组对象,可以根据字节数组的第0个索引来得到字符串中第一个字母的ASCⅡ码。

2.Char显式转换为数值类型得到ASCⅡ

        字符Char是值类型,它总是表示成16位Unicode代码值。

        现在已经了解到Char是值类型,如果将Char显式转换为数值类型,可以方便地得到ASCⅡ码值。相反,如果将ASCⅡ码数值强制转换为Char,将会得到一个Char对象。

二、实例

// 字符与ASCII相互转换
using System.Text;namespace _036
{public partial class Form1 : Form{private GroupBox? groupBox1;private Button? button2;private Button? button1;private TextBox? textBox1;private TextBox? textBox2;private TextBox? textBox3;private TextBox? textBox4;public Form1(){InitializeComponent();Load += Form1_Load;}private void Form1_Load(object? sender, EventArgs e){// // button2// button2 = new Button{Location = new Point(117, 58),Name = "button2",Size = new Size(91, 23),TabIndex = 6,Text = "ASCII转字符",UseVisualStyleBackColor = true};button2.Click += Button2_Click;// // button1// button1 = new Button{Location = new Point(117, 29),Name = "button1",Size = new Size(91, 23),TabIndex = 5,Text = "字符转ASCII",UseVisualStyleBackColor = true};button1.Click += Button1_Click;// // textBox1// textBox1 = new TextBox{Location = new Point(6, 29),Name = "textBox1",Size = new Size(100, 23),TabIndex = 1};// // textBox2// textBox2 = new TextBox{Location = new Point(219, 29),Name = "textBox2",Size = new Size(100, 23),TabIndex = 2};// // textBox3// textBox3 = new TextBox{Location = new Point(6, 58),Name = "textBox3",Size = new Size(100, 23),TabIndex = 3};// // textBox4// textBox4 = new TextBox{Location = new Point(219, 58),Name = "textBox4",Size = new Size(100, 23),TabIndex = 4};// // groupBox1// groupBox1 = new GroupBox{Location = new Point(12, 14),Name = "groupBox1",Size = new Size(325, 100),TabIndex = 0,TabStop = false,Text = "字符与ASCII相互转换"};groupBox1.Controls.Add(button2);groupBox1.Controls.Add(button1);groupBox1.Controls.Add(textBox1);groupBox1.Controls.Add(textBox2);groupBox1.Controls.Add(textBox3);groupBox1.Controls.Add(textBox4);groupBox1.SuspendLayout();// // Form1// AutoScaleDimensions = new SizeF(7F, 17F);AutoScaleMode = AutoScaleMode.Font;ClientSize = new Size(349, 126);Controls.Add(groupBox1);Name = "Form1";StartPosition = FormStartPosition.CenterScreen;Text = "字符与ASCII互转";           groupBox1.ResumeLayout(false);groupBox1.PerformLayout();           }/// <summary>/// 字母转ASCII/// 注释掉的部分异常:/// Index was outside of the bounds of the array/// 未处理的异常:System.IndexOutOfRangeException:索引超出数组的范围(在第一个if语句处)/// 修改后,正常了/// </summary>private void Button1_Click(object? sender, EventArgs e){if (textBox1!.Text != string.Empty)                 //判断输入是否为空{/*if (Encoding.GetEncoding("unicode").          //判断输入是否为字符GetBytes(new char[] { textBox2!.Text[0] })[1] == 0)  */             if (char.IsLetterOrDigit(textBox1.Text.ToCharArray()[0])) //判断输入是否为字符{textBox2!.Text = Encoding.GetEncoding(      //字符转ASCII码"unicode").GetBytes(textBox1.Text)[0].ToString();}else{textBox2!.Text = string.Empty;              //输出空字符串MessageBox.Show("请输入字母!", "提示!");//提示用户信息}}else{               MessageBox.Show("请输入字母!", "提示!");}}/// <summary>/// ASCII转字母/// </summary>private void Button2_Click(object? sender, EventArgs e){if (textBox3!.Text != string.Empty)             //判断输入是否为空{if (int.TryParse(                           //将输入的字符转换为数字textBox3.Text, out int P_int_Num)){textBox4!.Text =((char)P_int_Num).ToString();       //ASCII码转为字符}else{MessageBox.Show(                        //如果输入不符合要求弹出提示框"请输入正确ASCII码值。", "错误!");}}else{MessageBox.Show("请输入ASCII!", "提示!"); }          }}
}

三、生成效果 

 

四、程序中的一些知识点

1.IsLetterOrDigit()

2.GetBytes()

3.TryParse(string, out int)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591272.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机网络的接口

计算机网络接口是计算机与网络通信设备之间进行通信的重要部分&#xff0c;它提供了计算机连接到网络的物理和逻辑接口&#xff0c;是计算机进行网络通信的重要组成部分。本文将介绍计算机网络接口的基本概念&#xff0c;不同类型的网络接口及其特点&#xff0c;以及在实际应用…

KBDNO1.DLL文件缺失,软件或游戏无法启动运行,怎样快速修复

不少小伙伴&#xff0c;求助电脑报错“KBDNO1.DLL文件缺失&#xff0c;软件或游戏无法启动或运行”&#xff0c;应该怎么办&#xff1f; 首先&#xff0c;我们先来了解“KBDNO1.DLL文件”是什么&#xff1f; KBDNO1.DLL是Windows操作系统中的一个动态链接库文件&#xff0c;主…

连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver‘,亲测有效!!!

Jmeter连接progressql报错Cannot load JDBC driver class ‘org.postgresql.Driver’ 1.到官方下载驱动注意&#xff1a;根据项目的JDK版本来下载对应的驱动Download | pgJDBC 2.将postgresql-42.2.27.jar复制到lib目录下面&#xff0c; 然后重新启动 连接driver信息如下&#…

【LeetCode:69. x 的平方根 | 二分】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

印尼小胖子表情包大全

印尼小胖子tatan表情包大全 想要更多表情包&#xff0c;访问cmay表情包大全

二叉树的前序遍历 、二叉树的最大深度、平衡二叉树、二叉树遍历(leetcode)

目录 一、二叉树的前序遍历 方法一&#xff1a;全局变量记录节点个数 方法二&#xff1a;传址调用记录节点个数 二、二叉树的最大深度 三、平衡二叉树 四、二叉树遍历 一、二叉树的前序遍历 方法一&#xff1a;全局变量记录节点个数 计算树的节点数: 函数TreeSize用于递…

机器视觉在医学影像与医疗领域的应用及前景

引言 随着人工智能技术的飞速发展&#xff0c;机器视觉在医学影像和医疗领域中扮演着越来越重要的角色。机器视觉技术如何在医院领域提高诊断准确性、加快治疗流程以及改善患者体验。本文将探讨机器视觉算法的重要性、使用场景&#xff0c;并对其在医院领域应用的前景提出个人见…

计算机毕业设计-----SSM场地预订管理系统

项目介绍 本项目分为前后台&#xff0c;前台为普通用户登录&#xff0c;后台为管理员登录&#xff1b; 用户角色包含以下功能&#xff1a; 按分类查看场地,用户登录,查看网站公告,按分类查看器材,查看商品详情,加入购物车,提交订单,查看订单,修改个人信息等功能。 管理员角…

分布式【Zookeeper】

1.1 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务&#xff0c;提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面&#xff0c;ZooKeeper 并没有直接采用 Paxos 算法&…

爬虫工作量由小到大的思维转变---<第三十四章 Scrapy 的部署scrapyd+Gerapy>

前言: scrapy-redis没被部署,感觉讲起来很无力;因为实在编不出一个能让scrapy-redis发挥用武之地的案子;所以,索性直接先把分布式爬虫的部署问题给讲清楚!! 然后,曲线救国式地再在部署的服务器上,讲scrapy redis我感觉这样才好! 正文: 现在还有不少人在用scrapy web进行爬虫管…

2024,启动(回顾我的2023)

零.前言 打开博客想写个年度总结&#xff0c;发现已经半年没有更新文章了&#xff0c;排名从几千掉到了几万&#xff0c;不过数据量还是不错的。 时间过得可真快&#xff0c;2023年是充满动荡的一年&#xff0c;上半年gpt横空出世&#xff0c;下半年各种翻车暴雷吃瓜吃到嘴软…

系统编程--VIM

这里写目录标题 vim三种工作模式进入文本模式的快捷键在命令模式下进行文本编辑 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 vim 三种工作模式 具体可见第二章对vim的详细介绍 …

第二节 linux操作系统安装与配置

一&#xff1a;Vmware虚拟机安装与使用   ①VMware是一个虚拟PC的软件&#xff0c;可以在现有的操作系统上虚拟出一个新的硬件环境&#xff0c;相当于模拟出一台新的PC &#xff0c;以此来实现在一台机器上真正同时运行多个独立的操作系统。   ②VMware主要特点&#xff1a…

ES6 Module详解

✨ 专栏介绍 在现代Web开发中&#xff0c;JavaScript已经成为了不可或缺的一部分。它不仅可以为网页增加交互性和动态性&#xff0c;还可以在后端开发中使用Node.js构建高效的服务器端应用程序。作为一种灵活且易学的脚本语言&#xff0c;JavaScript具有广泛的应用场景&#x…

SELinux 基本原理

本文讲述 SELinux 保护安全的基本原理 首发公号&#xff1a;Rand_cs 安全检查顺序 不废话&#xff0c;直接先来看张图 当我们执行系统调用的时候&#xff0c;会首先对某些错误情况进行检查&#xff0c;如果失败通常会得到一些 error 信息&#xff0c;通过查看全局变量 errno …

基于Flutter构建小型新闻App

目录 1. 概述 1.1 功能概述 1.2 技术准备 1.3 源码地址 2. App首页 2.1 pubspec依赖 2.2 热门首页组件 2.2.1 DefaultTabController 2.2.2 Swiper 2.3 新闻API数据访问 2.4 热门首页效果图 3. 新闻分类 3.1 GestureDetector 3.2 新闻分类效果图 4. 收藏功能 4…

知识付费小程序系统源码:轻松实现 一站啊运营模式+完整的代码包 附安装部署的矫教程

在当今社会&#xff0c;知识的价值愈发凸显。人们对于优质内容的渴求&#xff0c;使得知识付费市场不断扩大。然而&#xff0c;对于许多内容创作者而言&#xff0c;搭建和维护一个知识付费平台的成本较高&#xff0c;技术门槛也相对较高。下面小编来和大家分享一款知识付费小程…

【Reading Notes】(2)

文章目录 FreestyleHip-hop dance and MusicProgrammerMaster Freestyle 都说人的成长有三个阶段&#xff0c;第一个阶段认为自己独一无二&#xff0c;天之骄子&#xff1b;第二个阶段发现自己原来如此渺小&#xff0c;如此普通&#xff0c;沮丧失望&#xff1b;第三阶段&#…

软考高级哪个简单?

对于没有相关知识基础的考生而言&#xff0c;软考高级考试具有一定的难度。软考高级考试包括五个科目&#xff0c;分别是信息系统项目管理师、系统分析师、系统规划与管理师、系统架构设计师以及网络规划设计师。 不同科目的难易度并不会相差太大&#xff0c;不过在高级考试中&…

为什么德国如此重视可持续性有机葡萄酒种植?

可持续性在德国葡萄栽培中越来越重要&#xff0c;它包括对葡萄酒行业的生态、经济和社会问题给予同等的考虑。在过去的几年里&#xff0c;世界范围内出现了许多不同的可持续葡萄酒生产项目。 以可持续发展为导向的酒庄是如何运营的&#xff1f;作为可持续发展整体方法的一部分&…