char转换为数字_char字符转int

char转换为数字_char字符转int刷题遇到一个考点是char型数字转int进行计算的问题。一看就会,一做就错,显然是在这里的认识薄弱了。将一番搜索的结果记录下来,以备再忘来打脸。char的定义参考:Java基本数据类型之char。首先,char跟int这两种类型可以直接互转:charch1=’a’;inti=ch1;charch2=(char)i;那么面对charin=‘2’需要转成int做计算,那么很…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

         刷题遇到一个考点是 char型数字 转 int 进行计算的问题。一看就会,一做就错,显然是在这里的认识薄弱了。将一番搜索的结果记录下来,以备再忘来打脸。

        char的定义参考:Java基本数据类型之char

        首先,char  跟 int 这两种类型可以直接互转:

char ch1 = 'a';
int i = ch1;
char ch2 = (char)i;

         那么面对 char in = ‘2’  需要转成 int 做计算,那么很自然想到把char 型变量直接赋给 int 型就能计算 了。

char in = '2';
int iVar = in;
System.out.println(in);
System.out.println(iVar);

//输出:
// 2
// 50

        想当然的做法果然错了:期望取出来的 int 2,实际却是 int 50。

        当 char 直接 赋给 int 时,实际上是把 char 变量的ASCII 码赋给 int类型,因此取出char 变量的数值不能通过直接转换成int的方法实现。

方法一:

        利用char变量使用 ASCII进行算术运算这一特征,可以得到一种间接计算获取数值的方法。

char ch1 = '8';
int iVar = ch1 - '0';
System.out.println(iVar);

//输出
// 8

‘0’-‘9’  ASCII 为 48-57,且顺序一致,因而char数字之间的差值等于数字之间的差值 。

System.out.println('9'-'1' == 9-1);	//true
System.out.println('8'-'0' == 8);	//true

方法二:

        使用 char 包装类Character提供的方法;

char ch1 = '8';
Character.getNumericValue(ch1);    // 8
//Character.digit(ch1,10);    // 8

方法三:

        通过int 包装类 Integer 。

char ch2 = '8';
int i = Integer.parseInt(String.valueOf(ch2));    // 8

方法一最快,方法三慢。测试代码如下:

    @Test
	public void test(){
		int circle = 100000;
		StopWatch watch = new StopWatch();
		char ch1 = '8';
		watch.start("task1");
		int count = 0;
		while (count++ < circle){
			int i = ch1 - '0';
		}
		watch.stop();
		watch.start("task2");
		count = 0;
		while (count++ < circle){
			int i = Character.digit(ch1,10);
		}
		watch.stop();

		watch.start("task3");
		count = 0;
		while (count++ < circle){
			int i = Integer.parseInt(String.valueOf(ch1));
		}
		watch.stop();
		System.out.println(watch.prettyPrint());
	}



结果:
---------------------------------------------
ns         %     Task name
---------------------------------------------
002761400  010%  task1
003343100  012%  task2
022454000  079%  task3

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188774.html原文链接:https://javaforall.net

(0)
上一篇 2026年4月15日 下午5:13
下一篇 2026年4月15日 下午5:19


相关推荐

  • 全站多语言前后端熟练使用国内外几十种AI欢迎抄作业

    全站多语言前后端熟练使用国内外几十种AI欢迎抄作业

    2026年3月12日
    3
  • 周 题库刷题任务

    周 题库刷题任务登陆青鸟云题库点击我的排行选择班级与时间班级选择本班时间选择本周提交周刷题结果将截图插入到博客中在表中录入实际答题数 并贴上链接注意 实际答题数实际答题数实际答题数

    2026年3月18日
    1
  • document.all用法(一)

    document.all用法(一)1、理解document.all[]  从IE4开始IE的objectmodel才增加了document.all[],来看看document.all[]的Description:ArrayofallHTMLtagsinthedocument.Collectionofallelementscontainedbytheobject.  也就是说document.all

    2022年7月12日
    21
  • linux 安装 配置tomcat8,linux安装配置多个tomcat,linux安装部署2个以上tomcat[通俗易懂]

    linux 安装 配置tomcat8,linux安装配置多个tomcat,linux安装部署2个以上tomcat[通俗易懂]一、Tomcat下载点击此处进入官网下载tomcat二、Tomcat安装部署1.创建路径并上传tomcat–创建文件夹mkdir/tomcat–进入文件夹cd/tomcat–解压文件tar-xzvfapache-tomcat-8.5.47.tar.gz–重命名mvapache-tomcat-8.5.47tomcat8.5-8080…

    2022年5月5日
    50
  • Snappy压缩_ps压缩文件怎么安装

    Snappy压缩_ps压缩文件怎么安装1.功能说明使用snappy压缩来提升mapreduce和hbase的性能。其实就是用CPU换IO吞吐量和磁盘空间。配置并使用snappy有如下几点要求:首先需要hadoop集群的native库已经收到编译好,并且添加了对snappy的支持。编译hadoop源码之前安装了snappy并且编译时指定-Drequire.snappy参数。

    2025年6月7日
    3
  • 【Kafka】Kafka 配置 SCRAM认证

    【Kafka】Kafka 配置 SCRAM认证PLAIN 认证有个问题 就是不能动态新增用户 每次添加用户后 需要重启正在运行的 Kafka 集群才能生效 为此 在生产环境 这种认证方式不符合实际业务场景 而 SCRAM 不一样 使用 SCRAM 认证 可以动态新增用户 添加用户后 可以不用重启正在运行的 Kafka 集群即可进行鉴权 本篇文档中使用的是自己部署的 zookeeper zookeeper 无需做任何特殊配置 1 准备使用 SASL SCRAM 进行身份验证 请先在不配置任何身份验证的情况下启动 Kafka2 创建 SCRAMCredent

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号