【Java开发】 对 char 字符类型 解析

news/2025/3/21 0:40:26/文章来源:https://www.cnblogs.com/zeng666/p/18784338

1.首先上代码示例解析:

-- Java 代码示例 ---

 


public class Testchar {public static void main(String[] args) {//char c1 = '1';//char c2 = '2';//System.out.println(c1); // 正常输出 c1 变量对应的值为1。//System.out.println(c1 + c2); // 输出99(1->49 , 2->50) ,这种写法会找到unicode码点 所对应的ASCII 值,再两者进行相加,char 的本质是一个整数。char c3 = 1;  // 注意此时 char 定义的变量的值都没有加引号。char c4 = 2;//System.out.println(c3); //控制台没有明显输出,因为该字符属于 控制字符。/*   在 Java 里,char 属于基本数据类型,其用来表示单个 Unicode 字符。char 变量既能用单引号包裹的字符来赋值,也可以用对应的 Unicode 码点值来赋值。在你给出的代码里,char c3 = 1; 是把整数 1 赋值给 char 类型的变量 c3。这里的 1 代表的是 Unicode 码点为 1 的字符。而 Unicode 码点为 1 的字符属于控制字符,被称作 “标题开始(Start of Heading,SOH)”,它没有可视化的表示形式。当你执行 System.out.println(c3); 时,输出的就是 Unicode 码点为 1 对应的控制字符,在控制台通常不会有可见的输出,也许会引发一些特殊的控制行为,不过大多数情况下可能没有明显的效果。*/System.out.println(c3 + c4); // 输出3/*在 Java 中,char 类型本质上是一个 16 位无符号整数,它可以表示 Unicode 字符集中的字符,同时也可以作为整数参与算术运算。当你执行 char c3 = 1; 和 char c4 = 2; 时,实际上是将 Unicode 码点为 1 和 2 的字符分别赋值给了 c3 和 c4。在 Java 里,字符在底层是以其对应的 Unicode 码点值(整数)形式存储的。接着,当你使用 System.out.println(c3 + c4); 进行输出时,+ 运算符在这里执行的是算术加法操作。Java 会自动将 c3 和 c4 这两个 char 类型的变量提升为 int 类型(这是 Java 中算术运算的类型提升规则),然后将它们所代表的整数相加,也就是 1 + 2,结果为 3,所以最终输出的就是 3。*/}
}

2.附 :char 字符类型知识扩展

1.基本概念:char 属于基本数据类型,它用于表示单个字符。在 Java 里,char 类型使用 16 位的无符号整数来存储 Unicode 字符集中的字符,这意味着它能够表示范围为 0 到 65535 的字符。
赋值方式
char 类型变量可以通过以下两种常见方式赋值:
使用单引号包裹字符:你可以直接用单引号把一个字符括起来,然后赋值给 char 类型的变量。
--java--char c = 'A';使用 Unicode 码点:你也能够使用对应的 Unicode 码点值来为 char 类型变量赋值。
--java--char c = '\u0041'; // Unicode 码点 '\u0041' 表示字符 'A'2.与整数的关系:虽然 char 是字符类型,但在底层它以整数形式存储,因此可以像整数一样参与算术运算。在进行算术运算时,char 类型会被自动提升为 int 类型。
--java--char c = 'A';
int num = c + 1; 
System.out.println(num); // 输出 66,因为 'A' 的 Unicode 码点是 653.应用场景:char 类型常用于处理文本数据,比如字符比较、字符串处理等。
--java--char firstChar = "Hello".charAt(0); 
System.out.println(firstChar); // 输出 'H'总之,char 是一种专门用于表示单个字符的数据类型,在处理文本和字符操作时非常有用。

 

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

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

相关文章

[AI/AIGC/GPT] 提示词工程1概述篇

概述:提示词工程提示工程(Prompt Engineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语言模型(Large Language Model, LLM)用于各场景和研究领域。 掌握了提示工程相关技能将有助于用户更好地了解大型语言模型的能力和局限性。 研究人员可利用提示工程来提…

java综合开发-前后端分离-01前端html,css

java综合开发-前后端分离-01前端html,css[ 任务列表 ] 1.阶段目标 2.网页基础知识 3.html和css 4.html的常用标签 4.1. 标题标签:h1-h6 4.2. 图片标签:img 4.3. 水平分割线标签:hr 4.4. css的三种引入方式: 4.5. 颜色的三种表示形式: 4.6. css的三种选择器: 4.7. 无语义…

Unreal最佳实践——通过进程Hack资源

Q:接到一个需求说是要一个外部C++调用ReadProcessMemory 黑进UE的程序找到uimage的地址,然后把里面的png图片拷贝出来,一头雾水 A:ReadProcessMemory写过 A:进程的启动地址就是你的基址,不过UE的需要找到world基址,所有的world对象U指针基于world,如果不是world内的,直接…

数据、信息、知识、智慧:AI时代我们该如何思考?

时代的浪潮滚滚向前,AI技术的演进正悄然改变着我们认知世界和创造价值的方式。从数据、信息到知识、智慧,从大数据到大模型,从单一智能体到多智能体协作,这是一场深刻的认知革命,也是生产力解放的新纪元。 AI粉嫩特攻队,2025年3月15日。 最近跟几个朋友讨论AI发展,突然意…

3.20学习苍穹外卖

今天主要学习关于微信支付的流程问题 又微信官方文档和流程图整体来说十分复杂 不过通过一篇博客成功跳过这个问题 引文正真支付是需要部分密钥文件 黑马不会提供这个 所有无法实现 就是通过直接跳转到成功支付实现的这个功能 https://blog.csdn.net/XZY__one/article/details/…

GKI改造原则、机制和方法

Google在android11-5.4分支上开始要求所有下游厂商使用Generic Kernel Image(GKI),需要将SoC和device相关的代码从核心内核剥离到可加载模块中(下文称之为GKI改造),从而解决内核碎片化问题。GKI为内核模块提供了稳定的内核模块接口(KMI),模块和内核可以独立更新。本文…

鸿蒙特效教程07-九宫格幸运抽奖

鸿蒙特效教程07-九宫格幸运抽奖在移动应用中,抽奖功能是一种常见且受欢迎的交互方式,能够有效提升用户粘性。本教程将带领大家从零开始,逐步实现一个九宫格抽奖效果,适合HarmonyOS开发的初学者阅读。最终效果预览 我们将实现一个经典的九宫格抽奖界面,包含以下核心功能:3…

Ollama系列05:Ollama API 使用指南

本文是Ollama系列教程的第5篇,在前面的4篇内容中,给大家分享了如何再本地通过Ollama运行DeepSeek等大模型,演示了chatbox、CherryStudio等UI界面中集成Ollama的服务,并介绍了如何通过cherryStudio构建私有知识库。 在今天的分享中,我将分享如何通过API来调用ollama服务,通…

前端HTML+CSS+JS速成笔记

HTML 超文本标记语言。 单标签与双标签的区别 单标签用于没有内容的元素,双标签用于有内容的元素。 HTML文件结构 告诉浏览器这还是一个 Html 文件: <!DOCTYPE html>Html文件的范围: <html>...</html>Html 文件的头: <head>...</head>实际显…

12. ADC

一、ADC简介生活中接触到的大多数信息是醉着时间连续变化的物理量,如声音、温度、压力等。表达这些信息的电信号,称为 模拟信号(Analog Signal)。为了方便存储、处理,在计算机系统中,都是数字 0 和 1 信号,将模拟信号(连续信号)转换为数字信号(离散信号)的器件就叫模…

【刷题笔记】力扣 40. 组合总和 II——回溯算法中的去重

40. 组合总和 II 中等 给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates = [10,1,2,7,6,1,…