学习Java基础解惑(1)——字符类型

Java基础解惑——字符类型

免责声明:因个人水平有限,如有错误还望加指正。

基础知识:

    char类型的变量存储单个的字符代码。因为Java中所有的字符都以Unicode存储,所以他们每个占16比特(2字节)的内存。

    声明一个字符类型:

    char myChar = 'X';

    这里用Unicode字符表示字母X来初始化变量。需要注意的是语句使用单引号作为字符字面量的定义符,对于编译器而言,这将起到区分字符'X'与变量X的作用。另外不能还用双引号作为定义符,因为双引号是用来定义字符串的。字符串"X"与字符'X'的字面量完全不同。

    1. 字符转移序列

    转移序列式一种简单常用的通过其代码设置字符的方式,以一个反斜杠(\)作为序列的开始,和熟悉的\n是一样的原理。

    以字母X为例,其Unicode编码的十六进制值是0x0058,因此同样可以使用这样的语句来进行声明:

    char myChar = '\u0058';

    这样做的结果与之前的初始化语句效果是一样的,使用这种方法可以输入任何Unicode字符,只需要知道其编码即可。

    解惑:

         有时候,我们需要对字符串中的双引号进行判断或者处理,这时候单纯的使用(\")这样的转义形式,可能会导致编译器报错失败。例如对字符串进行以split(双引号)的操作时,可以使用指定Unicode编码来实现判断,如:

       String.split("\\u0022");

    2. 字符算术

     我们已经知道字符可以通过指定编码来进行初始化赋值,实际上字符类型与数字是有着紧密的关系的。

     我们甚至可以直接使用数字来对字符串进行赋值,或者直接获取char类型的编码值,如:

     char mychar=0x0058;              //仍然初始化的值为'X'

     int mycharIndex=mychar;      //直接获取字符的Unicode编码值,需要注意的是,这样返回的结果将是十进制的88

     如果要获得十六进制的结果(58),则可以使用以下方法。

     Integer.toHexString(mycharIndex);

     我们还可以对字符(实质是对其Unicode编码)进行数学运算

     char mychar = 88;                 //这时mychar的值为'X'

     mychar +=1;                        //这时mychar的值就是'Y'了

      解惑:

               曾经使用char[]数组来存储从服务器端返回的信息,由于需要判断是否已经将结果读取全,就需要判断当前的数组是否已经存放满了。但是如果此想通过length属性来获取长度,那么返回的结果肯定会让你失望,如:

             char myCharArray[] = new char[256];

             System.out.println(myCharArray.length);         //将会在屏幕上赤裸裸的显示256,也就是你初始化时候的长度

             于是有网友提出还用for循环来计非空值数量的方式,来完成这个需求。但是在判断非空时遇到了一些疑惑,当char[]数组在初始化的时候,会将值全部初始化为0,而这句话是有歧义的。到底是'0',还是编码0x0000?如果是'0',那如果数组本身正常的值就有'0',那怎么办?所以猜测是编码为0。真相没有让人失望,确实是编码值为0。也就是相当于:  char myChar = 0x0000; (或者char myChar = 0)

             所以这样子的话计数条件就应该以Unicode编码为基准。那么最原始的循环就应当如下:

            char myCharArray[] = new char[256];

            int count = 0;                 //计数器

            boolen flag = true;                 //循环中断条件

            for(int i=0;i<myCharArray.length && flag==true;i++)

            {

                  if(myCharArray[i]!=0x0000)         //这是以十六进制编码来判断

                  //if(myCharArray[i]!=0)              //这是以十进制来判断

 

                  //if(myCharArray[i]!='\000')        //这是使用字符转移序列'\000'进行判断,'/000'表示空

 

                  {

                        count++;

                  }

                  else

                  {

                        flag = false;

                  }           

            }

            数组实际长度 = count;

转载于:https://www.cnblogs.com/ButterBall/archive/2013/02/27/2934917.html

VS2019集成AddressSanitizer:C++内存错误检测实战指南 在C++开发中,内存管理是核心挑战之一,涉及堆、栈和全局变量的分配与释放。其原理在于程序运行时对内存地址的访问必须严格遵循分配边界和生命周期规则,否则会导致缓冲区溢出、释放后使用等严重错误。这类问题的技术价值在于直接影响程序的稳定性、安全性和性能,是高质量软件必须攻克的基础难题。应用场景广泛,从嵌入式系统到大型服务器软件,都需要可靠的内存错误检测机制。AddressSanitizer(ASan)作为一种编译时插桩技术,通过影子内存和运行时检查,能精准定位堆缓冲区溢出、释放后使用等隐蔽错误。本文以Visual 阅读详情

相关推荐

从ISCXTor2016到CICIDS2017:手把手教你下载和使用UNB的网络安全数据集

本文详细介绍了UNB大学发布的ISCXTor2016和CICIDS2017等网络安全数据集的下载与使用方法,特别适合加密流量识别和网络行为分析研究。文章提供了多种高效获取路径、文件结构解析及实战分析示例,帮助研究者快速上手这些真实场景捕获的精细标注数据集。

weixin_42524945的博客 630

JAVA判断字符的形式

Java判断字符形式的三种方法 1.Java自带函数 方法 描述 isDigit(ch) 如果指定字符是一个数字,返回true isLetter(ch) 如果指定字符是一个字母,返回true isLetterOrDigit(ch) 如果指定字符是一个数字或者字母,返回true isLowerCase(ch) 如果指定字符是一个小写字母,返回true isUpperC...

Rab_Mar 5929

告别JTAG!用Artix-7和SPI Flash实现FPGA远程升级的保姆级教程

本文详细介绍了如何利用Artix-7 FPGA和SPI Flash实现FPGA远程升级(OTA)的完整方案。通过硬件连接、Vivado工程配置和STM32模拟更新等步骤,帮助开发者告别传统的JTAG烧录方式,实现高效、安全的远程固件更新,特别适用于嵌入式系统开发中的现场维护场景。

weixin_33964987的博客 364

java 判断字符类型_java作业:输入一个字符,判断字符类别 : 数字字符,字母字符,其他字符...

这是我编写的,但是有错,求高手解决importjava.util.Scanner;publicclassTi5{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);System.out.println("请输入一个...这是我编写的,但是有错,求高手解决import java.util.Scanner;public ...

weixin_29168153的博客 623

DTS 数据迁移

支持关系型数据库(MySQL, Oracle, SQL Server等)、NoSQL数据库、大数据系统等。DTS数据迁移是现代化数据架构调整和云迁移过程中的重要工具,能够大大降低数据迁移的复杂度和风险。DTS (Data Transmission Service) 是一种数据迁移和同步服务,:先迁移历史数据(全量),再实时同步新增变化(增量):不同数据库类型间迁移,如Oracle到MySQL。:将单库数据迁移到分库分表架构。:将业务数据迁移到分析型数据库。:将本地数据库迁移到云数据库。

qq_41081716的博客 749

MBIST --- PATR1.Memorybist测试原理

mem bist作为现在design设计中不可或缺的DFT设计内容,越发重要。本章节主要介绍mem bist组成部分,测试的原理以及注意事项。

sinat_27691203的博客 1万+

Java的八种基本类型:(按字节来分)

Java的八种基本类型:(按字节来分) boolean   布尔型   1个字节 8bit(8位) byte     字节类型   1个字节 char     字符类型   2个字节 short     短整型     2个字节 int          整型        4个字节 float      浮点型(单精度)4个字节 long      长整

xiuxiuzhuanshu的博客 3121

STM32 HAL库驱动BMP388:从寄存器配置到高精度气压温度采集

本文详细介绍了如何使用STM32 HAL库驱动BMP388气压温度传感器,实现高精度数据采集。内容涵盖从硬件连接到STM32CubeMX配置、关键寄存器解析、驱动源码编写,到核心补偿算法与海拔换算的完整流程,并提供了针对不同应用场景的优化配置与调试技巧,帮助开发者快速构建稳定可靠的测量方案。

weixin_29299807的博客 171

JAVA_基础语法

Java是一种强类型语言,变量必须有对应的数据类型,且运行过程中不能改变设定好的变量类型。浮点数:带小数点的数值,小数点是浮动的,用于表达计算机内非整数(分数和无理数)的方法之一。for循环像一个计数循环,设定一个计数器,在计数器到达某值之前,重复执行循环体。a=a+1→a++(若a为6,输出为6)→++a(若a为6,输出为7)a=a-1→a–(若a为6,输出为6)→–a(若a为6,输出为5)&&-逻辑与—当a和b均为真时,a&&b才为真。||—逻辑或—当a和b均为假时,a||b才为假。

m0_75262878的博客 796

HTOL集成电路老化测试学习总结-20250510

电子元器件的可靠性在产品开发中至关重要,尤其是在微电子技术迅速发展的今天。电子元器件的失效率通常遵循“浴盆曲线”,分为早期失效期、可使用期和老化期。为了评估芯片的可靠性,常采用高温操作寿命测试(HTOL),通过高温和高压加速芯片老化,以筛选出早期失效的芯片并评估其长期可靠性。HTOL测试中,芯片在高温下运行并监控其性能变化,通过阿伦尼乌斯公式计算加速因子,预测芯片的失效率和寿命。此外,Burn-in测试用于加速芯片老化,提前发现并剔除不合格产品,而早期失效率测试(ELFR)则用于评估产品初期使用阶段的可靠性

歌颂苦难的行为是无耻的; 2101

神经进化实践:用遗传算法替代反向传播优化神经网络

神经进化用来定义应用于深度学习的特定优化模式。在本节中,我们通过遗传算法优化简单深度学习网络的权重/参数,替换在误差反向传播训练过程中的所用优化器。

盼小辉丶的博客 3602

Java 学习(一)Java语言基础

初学Java的编程小白的自学法宝,Java语言基础带您走近Java世界。

weixin_51760209的博客 1万+

基于射频技术的校园无人超市管理系统_360

本设计实现了一种基于射频技术的校园无人超市管理系统,系统集成了环境监测与商品管理两大核心模块。在环境监测部分,采用DHT11温湿度传感器与MQ2烟雾传感器对超市内部环境进行实时监测,结合温控与报警机制,实现自动通风与烟雾报警功能,并通过1.44寸SPI LCD显示屏进行本地信息显示。商品管理部分基于RC522-RFID读卡器完成商品识别,结合Qt上位机软件实现顾客自助选购与结算,同时支持管理员进行商品入库与会员卡管理等操作。系统采用STM32F103RCT6为主控核心,结合串口通信方式与Qt开发的上位机进行

375

java中字符类型_Java字符类型(详解)

【1】Java中使用单引号来表示字符常量,字符型在内存中占2个字节。char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。【2】转义字符:【3】ASCII表:【4】Unicode编码表:代码1:public class TestVar07{public static void main(String[] arg...

weixin_36261487的博客 6694

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Java变量_字符类型

java字符型

m0_62142386的博客 1772

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java基础字符类型

题头的话:长按点赞可私我赠送50+本Java书籍电子书资源 package bao; public class 字符类型 { char x='a'; //char型既字符类型,使用char关键字进行声明,用于存储单个字符,系统分配两个字节的内存空间。在定义字符型变量时,要用单引号括起来,例如‘s’表示一个字符 char X=97; //注意这里没有单引号 //且单引号中只能有一个字符,多了就不是字符类型了,而是字符串类型,需要用双引号进行声明。 public static void ma

BC 1290

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java之字符类型char

Java之字符类型char

y516369的博客 2772

Java学习笔记 --- 字符类型

字符类型可以表示单个字符,字符类型是char, char是两个字节(可以存放汉字),多个字符我们用String。

乌云的博客 704

java中字符类型_Java字符类型

Java字符类型字符型char在java语言中占用2个字节,char类型的字面量必须使用半角的单引号括起来,取值范围为[0-65535],char和short都占用2个字节,但是char可以取到更大的正整数,因为char类型没有负数。java语言中的char类型变量可以容纳一个汉字。请看以下程序:public class CharTest01 {public static void main(St...

weixin_39639174的博客 690

Java API、字符类型(char)

ASCII是上世纪60年代,美国制定了一套字符编码(使用一个字节),对英语字符与二进制位之间的关系,做了统一规定。ASCII码一共规定了128个字符的编码,只占用了一个字节的后面7位,最前面的1位统一规定为0。特别提示:一个字节可以表示256个字符,ASCII码只用了128个字符Unicode编码1、Unicode 的好处:一种编码,将世界上所有的符号都纳入其中。每一个符号都给予一个独一无二的编码,使用Unicode没有乱码的问题。

MichikoX的博客 753

Java学习笔记之标识符、字符类型

'\u'  unicode的编码  ES:'\u0041'==A 在unicode的编码表中,字母和数字都是顺序排列的 逃逸字符 用来表达无法印出来的控制字符或特殊字符,它由一个反斜杠“\”开头,后面跟上另一个字符,这两个字符合起来,组成了一个字符。es:\b,\n  关键字 Java 的关键字对 java 的编译器有特殊的意义,他们用来表示一种数据类型,或者表示

小海豚的博客 1236

Java 字符类型(char)

java字符类型及其转换

qq_63611062的博客 1164

java基础1

Java

m0_55772907的博客 511

Java字符类型

java字符类型可以表示单个字符,字符类型是char,char是两个字节,可以存放汉字,多个字符用String public class charDemo { public static void main(String[] args) { char c1 = 'a'; char c2 = 68; System.out.println(c1); System.out.println(c2); } } ...

深漂小码哥 2434

探秘Java字符类型:从Unicode编码到应用实践

值得注意的是, char 数组也可以用来存储字符序列,它与 String 的区别在于, char 数组是可变的,而 String 是不可变对象,一旦创建就无法修改其内容。例如,对字符 'A' 加1,会得到字符 'B' ,这是因为字符在计算机中以对应的Unicode编码值存储, 'A' 的Unicode编码为65, 'B' 为66。从单个字符的存储到字符串的操作,从Unicode编码到字符转义,掌握字符类型的特性与应用,是每个Java开发者必备的基础技能。此外,Java中还存在转义字符,用于表示特殊字符。

YJL_lll的博客 508

JAVA学习(五)字符类型

字符类型(char) 字符类型可以表示单个字符,字符类型是char,char是2个字节(可以存放汉字),多个字符我们用字符串String。 字符类型使用细节: 1.字符常量是用单引号( ' ')括起来的单个字符。例如:char c ='a'; char c1 = '中';char c2 = '9' 2.Java中还允许使用转义符 '\' 来将其后的字符转变为特殊字符型常量。例如:char c = '\n';// '\'n表示的就是换行符 3. 在Java中,char的本质是一个整数,在输...

weixin_44913188的博客 334
上一篇: [译]Code First基础
下一篇: IdeaIU 12 手工配置 Struts2
adiljan3336
博客等级 码龄12年 0粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值