JAVA char转int

JAVA char转intchar 类型的数据转换成 int 类型的数字 本能反应是这么写的 publicstatic String args charc 1 本能反应是这么写的 inti c 或者这么写 inti1 int c System out

char类型的数据转换成int类型的数字。

本能反应是这么写的。

 

public static void main(String[] args) { char c = '1'; // 本能反应是这么写的。 int i = c; // 或者这么写 int i1 = (int)c; System.out.println("c======="+c); System.out.println("i======="+i); System.out.println("i1======="+i1); }

最后输出

c=======1

i=======49

i1=======49

发现两种转换都不对。这直接是输出1的ASCII码。

那么实际上应该怎么转换?

 

public static void main(String[] args) { char c = '1'; // 先把c装成string类型 String stringc = String.valueOf(c); System.out.println("stringc========="+stringc); // string转成int int intc = Integer.parseInt(stringc); System.out.println("intc========="+intc); }

stringc=========1

intc=========1

Q:为什么需要这么操作?

A:因为char是JAVA中的保留字,与别的语言不同,char在JAVA中是16位(bit)(JAVA用的是unicode,2个字节(byte))。不过八位的ASCII码包含在unicode中(0~127)。

所以char初始化可以是单个字符,汉字,整数赋值,字符的编码来初始化。

在JAVA中,因为对char类型字符运行时,直接当做ASCII表中对应的整数来对待。所以char可以直接转成int,得到的就是ASCII中对应的数字。所以不能直接转成int;所可以直接将char转成String,再转成int。JAVA中,char是一个基本类型(基本类型只能由基本类型强制转换),String是一个引用类型。推荐使用valueOf这个方法进行转换。

// String.valueOf()有可能出现字符串"null"的原因 public static String valueOf(Object obj) { return (obj == null) ? "null" : obj.toString(); } public static String valueOf(char c) { char data[] = {c}; return new String(data, true); }

扩展:int也不能直接强制转成char

char ca = (char) 1; System.out.println("ca======="+ca);

输出:ca=======

显示不出ca,因为1在char里面存的是’\u0001’。

char c2 = (char)20013; System.out.println(c2);

输出:中

也是直接显示ASCII码对应的字符,可以用String.valueOf,转成string,再转成char[]

char[] chars = String.valueOf(20013).toCharArray(); for (int i = 0; i < chars.length; i++) { System.out.print(chars[i]); }

补充:

char的本质:

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

char这种简单的java数据类型特点如下:

1:是java语言中8种基本数据类型中的一种

2:它占两个字节十六位

3:最小值是0,最大值是65535

4:它可以通过单引号包装起来表示,比如:‘1’、‘A’、‘中’,也可以使用0~65535十进制(其他进制的数也可以)的整数表示,也可以使用‘\u0000’~'\uffff'表示

5:它的默认值是'\u0000'(或者0)

6:只能是单个字符,多了,没有都不行(空格也是一种字符)

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

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

(0)
上一篇 2026年3月19日 下午8:14
下一篇 2026年3月19日 下午8:14


相关推荐

  • 怎么用excel做回归分析_用excel做数据分析

    怎么用excel做回归分析_用excel做数据分析Excel数据分析工具库是个很强大的工具,可以满足基本的统计分析,这里介绍用Excel数据分析工具库中的回归做回归分析。本文仅作为学习笔记之用,欢迎各位交流指正。本节知识点: Excel数据分析工具库—回归 线性回归和非线性回归 简单线性回归和多重线性回归 逻辑斯蒂回归 一、什么是回归分析(Regression)1、定义确定两种…

    2025年6月23日
    3
  • DeepSeek 1M上下文模型更新,智谱GLM-5发布,HBM3D技术加速AI芯片

    DeepSeek 1M上下文模型更新,智谱GLM-5发布,HBM3D技术加速AI芯片

    2026年3月12日
    2
  • R之相关性的显著性检验

    R之相关性的显著性检验p 值可以解释如下 一个很小的 p 值表示 在预测变量和响应变量之间的真实关系未知的情况下 不太可能完全由于偶然而观察到预测变量和响应变量之间的强相关 因此 如果看到一个很小的 p 值 就可以推断预测变量和响应变量问存在关联 如果 p 值足够小 我们便拒绝零假设 rejectthenul 也就是声明 X 和 Y 之间存在关系 相关

    2026年3月17日
    2
  • stable diffusion 出不了图片怎么回事了

    stable diffusion 出不了图片怎么回事了

    2026年3月15日
    1
  • FreeWebHostingArea_Freefilesync

    FreeWebHostingArea_Freefilesync http://bbs.et8.net/bbs/showthread.php?t=896519hostingsiteshttp://www.orbitfiles.com/http://filexoom.com/http://www.sendthisfile.com/http://www.albumtown.com/http://app02.bonpoo.com/f

    2022年10月8日
    4
  • SlimDX开发入门

    SlimDX开发入门最近在使用 SlimDX 进行 Direct3D 学习的时候遇到了问题 程序直接挂掉 报错是程序找不到源 解决方法是安装运行库 即最新的 SlimDX dll 依赖最新的 D3DX9 43 当使用 SlimDX dll 进行渲染图形时 需配置运行环境 简单的方法就是把 D3DX9 43 dll 直接放到输出目录下 这样应用程序就能直接运行啦 转载于 https www cnblogs com shaozhuy

    2026年3月26日
    3

发表回复

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

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