(十)Java 之 Character 类

目录

一. 前言

二. 实例讲解

2.1. 内置数据类型(char)

2.2. 装箱/拆箱

2.3. 转义序列

2.4. Character 方法

2.5. Character 常量

三. 课后习题


一. 前言

    Character 类用于对单个字符进行操作,Character 类在对象中包装一个基本类型 char 的值,在实际开发中,我们经常会遇到需要使用对象,而不是内置数据类型的情况,为了解决这个问题,Java 语言为内置数据类型 char 提供了包装类 Character 类,Character 类的对象包含类型为 char的单个字段,这样的话就能够将基本数据类型当对象来处理。

二. 实例讲解

2.1. 内置数据类型(char)

char ch = 'a';// Unicode for uppercase Greek omega character
char uniChar = '\u039A'; // 字符数组
char[] charArray = { 'a', 'b', 'c', 'd', 'e' }; 

    使用字符时,我们通常使用的是内置数据类型 char。然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java 语言为内置数据类型 char 提供了包装类 Character 类。

    Character 类的用法:Character 类提供了一系列方法来操纵字符,你可以使用 Character 的构造方法创建一个 Character 类对象,例如:

Character ch = new Character('a');

2.2. 装箱/拆箱

    在某些情况下,Java 编译器会自动创建一个 Character 对象。

    例如,将一个 char 类型的参数传递给需要一个 Character 类型参数时,那么编译器会自动地将 char 类型参数转换为 Character 对象。 这种特征称为装箱,反过来称为拆箱。

示例如下:

// Here following primitive char 'a'
// is boxed into the Character object ch
Character ch = 'a';// Here primitive 'x' is boxed for method test,
// return is unboxed to char 'c'
char c = test('x');

2.3. 转义序列

前面有反斜杠(\)的字符代表转义字符,它对编译器来说是有特殊含义的。

下面列表展示了 Java 的转义序列:

转义序列描述
\t在文中该处插入一个tab键
\b在文中该处插入一个后退键
\n在文中该处换行
\r在文中该处插入回车
\f在文中该处插入换页符
\'在文中该处插入单引号
\"在文中该处插入双引号
\\在文中该处插入反斜杠

当打印语句遇到一个转义序列时,编译器可以正确地对其进行解释。示例如下:

public class Test {public static void main(String[] args) {System.out.println("She said \"Hello!\" to me.");}
}

以上实例编译运行结果如下:

She said "Hello!" to me.

2.4. Character 方法

下面是 Character 类的常用方法:

序号方法描述
实例方法:
1charValue()返回此Character对象的值
2hashCode()返回此Character的哈希码。
3equals()将此对象与指定的对象进行比较。
4compareTo()比较两个Character对象,若这两个对象相等则返回0
5toString()返回字符的字符串形式,字符串的长度仅为1
静态方法:
1charCount()确定char表示指定字符所需的值的数量(Unicode代码点)。
2codePointAt()返回char数组给定索引处的代码点。
3codePointBefore()返回给定char数组索引之前的代码点。
4codePointCount()返回char数组参数的子数组中的Unicode代码点数。
5compare(char x, char y)以char数字方式比较两个值。
6digit(char ch, int radix)返回ch指定基数中字符的数值。
radix的取值范围[2,36]
如果ch是“大写”的A到Z之间,则返回(ch - 'A' + 10)的值;如果是“小写”a到z之间,返回(ch - 'a' + 10)的值
如:求16进制中F代表的是多少,System.out.println(Character.digit('F',16));// 结果:15
7digit(int codePoint, int radix)返回指定基数中指定字符(Unicode代码点)的数值。
8forDigit(int digit, int radix)确定指定计算机进制(radix)中特定数字的字符表示形式。
radix的返回[2,36]
digit的取值范围[0,radix)
如:求在16进制中15使用哪个字符标识,System.out.println(Character.forDigit(15,16))// 结果:f
9getDirectionality()返回给定字符的Unicode方向性属性。
10getName()返回指定字符的Unicode名称,codePoint如果代码点为null,则返回 null unassigned。
11getNumericValue()返回指定的Unicode字符表示的int值。
12getType()返回表示字符常规类别的值。
13hashCode(char value)返回char值的哈希码; 兼容 Character.hashCode()。
14highSurrogate()返回表示UTF-16编码中指定的补充字符(Unicode代码点)的代理对的前导代理( 高代理代码单元)。
15isHighSurrogate()确定给定char值是否为 Unicode高代理代码单元 (也称为前导代理代码单元)。
16isAlphabetic()确定指定的字符(Unicode代码点)是否为字母。
17isBmpCodePoint()确定指定的字符(Unicode代码点)是否在基本多语言平面(BMP)中。
18isDefined()确定是否使用Unicode定义字符。
19isDigit()是否是一个数字字符
20isIdentifierIgnorable()确定指定的字符是否应被视为Java标识符或Unicode标识符中的可忽略字符。
21isIdeographic()确定指定的字符(Unicode代码点)是否是Unicode标准定义的CJKV(中文,日文,韩文和越南文)表意文字。
22isISOControl()确定指定的字符是否为ISO控制字符。
23isJavaIdentifierPart()确定指定的字符是否可能是Java标识符的一部分,而不是第一个字符。
24isJavaIdentifierStart()确定指定的字符是否允许作为Java标识符中的第一个字符。
25isLetter()是否是一个字母
26isLetterOrDigit()确定指定的字符是字母还是数字。
27isLowerCase()是否是小写字母
28isLowSurrogate()确定给定char值是否为Unicode低代理代码单元 (也称为trailing-surrogate代码单元)。
29isMirrored()确定是否根据Unicode规范镜像该字符。
30isSpaceChar()确定指定的字符是否为Unicode空格字符。
31isSupplementaryCodePoint()确定指定的字符(Unicode代码点)是否在补充字符范围内。
32isSurrogatePair()确定指定的char值对是否是有效的Unicode代理项对。
32isSurrogate()确定给定char值是否为Unicode代理项代码单元。
33isTitleCase()确定指定的字符是否是标题字符。
34isUnicodeIdentifierPart()确定指定的字符是否可能是Unicode标识符的一部分,而不是第一个字符。
35isUnicodeIdentifierStart()确定指定的字符是否允许作为Unicode标识符中的第一个字符。
36isUpperCase()是否是大写字母
37isValidCodePoint()确定指定的代码点是否是有效的Unicode代码点值。
38isWhitespace()根据Java确定指定的字符是否为空白。
39lowSurrogate()判断给定char值是Unicode低代理项代码单元(也称为尾部代理项代码单元)。这样的值并不代表字符本身,而是在UTF-16编码的补充的字符表示被使用
40offsetByCodePoints()返回给定子char数组中与代码点给定index的偏移量的索引codePointOffset。
41reverseBytes()返回通过反转指定char值中的字节顺序获得的值。
42toChars()将指定字符(Unicode代码点)转换为存储在char数组中的UTF-16表示形式。
43toCodePoint()将指定的代理项对转换为其补充代码点值。
44toLowerCase()指定字母的小写形式
45toString(char c)返回String表示指定对象的对象char。
46toTitleCase()使用UnicodeData文件中的大小写映射信息将字符参数转换为titlecase。(转化为大小)
47toUpperCase()使用UnicodeData文件中的大小写映射信息将字符参数转换为大写。
48valueOf()返回表示指定char值的Character实例 。

实例:

public class Java {public static void main(String[] args) {Character ch = new Character('X');System.out.println(Character.isUpperCase(ch));// Character.isUpperCase(ch) 用于判断括号里的字母是否为大写System.out.println(Character.isLowerCase(ch));// Character.isLowerCase(ch) 用于判断括号里的字母是否为小写System.out.println(Character.isDigit(ch));// Character.isDigit(ch) 用于判断括号里的内容是否为数字}
}

运行结果:

true
false
false

2.5. Character 常量

下表是 Character 常用常量:

序号常量说明
1MIN_RADIX返回最小基数
2MAX_RADIX返回最大基数
3MIN_VALUE字符类型最小值
4MAX_VALUE字符类型最大值

char a = Character.MAX_VALUE;
char b = Character.MIN_VALUE;
int c = Character.MAX_RADIX;
int d = Character.MIN_RADIX;
System.out.println(d);
System.out.println(c);
System.out.println(b);
System.out.println(a);// 运行结果:
2
36?

三. 课后习题

1. 键盘录入一个字符串数据:包含大写字母字符、数字字符、小写字母字符(不考虑其他字符)。

2. 统计大写字母字符、小写字母字符、数字字符的个数(不考虑其他字符)。

3. 键盘录入字符串实现大小写转换。

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

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

相关文章

C++ //练习 5.18 说明下列循环的含义并改正其中的错误。

C Primer&#xff08;第5版&#xff09; 练习 5.18 练习 5.18 说明下列循环的含义并改正其中的错误。 (a) doint v1, v2;cout<<"Please enter two numbers to sum: ";if(cin>>v1>>v2)cout<<"Sum is: "<<v1 v2<<end…

Vulnhub靶机:hacksudo-ProximaCentauri

一、介绍 运行环境&#xff1a;Virtualbox 攻击机&#xff1a;kali&#xff08;10.0.2.15&#xff09; 靶机&#xff1a;hacksudo-ProximaCentauri&#xff08;10.0.2.51&#xff09; 目标&#xff1a;获取靶机root权限和flag 靶机下载地址&#xff1a;https://www.vulnhu…

Java中 Iterator接口的作用

什么是Iterator接口&#xff1f;它有什么作用&#xff1f; Iterator接口是Java集合框架中的一个重要接口&#xff0c;它提供了一种遍历集合中元素的标准方式。这个接口隐藏了不同集合类的具体实现细节&#xff0c;使得我们能够在不同的集合类之间进行切换而不需要修改代码&…

STM32 7-8

目录 ADC AD单通道 AD多通道 DMA DMA转运数据 DMAAD多通道 ADC AD单通道 AD.c #include "stm32f10x.h" // Device header/*** brief 初始化AD所需要的所有设备* param 无* retval 无*/ void AD_Init(void) {RCC_APB2PeriphClockCmd(RCC_AP…

Java 集合、迭代器

Java 集合框架主要包括两种类型的容器&#xff0c;一种是集合&#xff08;Collection&#xff09;&#xff0c;存储一个元素集合&#xff0c;另一种是图&#xff08;Map&#xff09;&#xff0c;存储键/值对映射。Collection 接口又有 3 种子类型&#xff0c;List、Set 和 Queu…

使用Cargo创建、编译与运行Rust项目

在 Rust 开发中&#xff0c;Cargo 是一个非常重要的工具&#xff0c;它负责项目的构建、管理和依赖管理。以下是如何使用 Cargo 创建、编译和运行 Rust 项目的详细步骤。 1. 创建新项目 首先确保你已经在计算机上安装了 Rust 和 Cargo。然后&#xff0c;在命令行中输入以下命…

Github 2024-02-12 开源项目日报 Top10

根据Github Trendings的统计&#xff0c;今日(2024-02-12统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目3Python项目3JavaScript项目1TypeScript项目1C项目1C项目1PowerShell项目1非开发语言项目1 SubQuery…

未来游戏制作的创新趋势与发展方向

随着科技的发展和社会变迁&#xff0c;游戏制作行业正经历一场深刻的变革。从早期的像素图形到现代的高清视觉盛宴&#xff0c;从简单的2D玩法到复杂的3D虚拟世界&#xff0c;再到混合现实与人工智能的深度融合&#xff0c;未来的游戏制作将呈现出更加丰富多元和智能化的面貌。…

【LeetCode每日一题】前缀和的例题1248. 统计「优美子数组」974. 和可被 K 整除的子数组

leetcode 724. 寻找数组的中心索引 题目描述 给定一个整数类型的数组 nums&#xff0c;请编写一个能够返回数组 “中心索引” 的方法。 我们是这样定义数组 中心索引 的&#xff1a;数组中心索引的左侧所有元素相加的和等于右侧所有元素相加的和。 如果数组不存在中心索引&…

3秒实现无痛基于Stable Diffusion WebUI安装ComfyUI!无需重复安装环境!无需重复下载模型!安装教程

标题略有夸张的表达了接下来这一套确实很简单&#xff0c;相较于直接下载或者通过秋叶包更新而言。大大节省磁盘空间&#xff0c;和下载时间。 这篇教程不需要你有&#xff1a; 代码基础。都是复制粘贴就完事。魔法。 这篇教程默认你已经有&#xff1a; 1. 本地能够正常使用…

【python5】闭包/装饰器,json/configparser/optparse,walk/split/getattr/bin//lspci/ethtool

文章目录 1.闭包和装饰器&#xff1a;函数里return就是闭包2.解析eeprom&#xff1a;如下是二进制文件&#xff0c;C8是一个字节3.json/configparser/optparse&#xff1a;json.dumps&#xff08;将字典转化为字符串&#xff0c;将json信息写进文件&#xff09;&#xff0c;jso…

使用securecrt+xming通过x11访问ubuntu可视化程序

windows使用securecrtxming通过x11访问ubuntu可视化程序 windows机器IP&#xff1a;192.168.9.133 ubuntu-desktop20.04机器IP&#xff1a;192.168.9.190 windows下载xming并安装 按照图修改xming配置 开始->xming->Xlaunch 完成xming会在右下角后台运行 windows在…

前端 > JS 笔试题面试考题(21-25)

简述请看下面的代码片段并回答以下问题 &#xff1f; for (var i 0; i< 5; i){var btn document.createElement(button);btn.appendChild(document.createTextNode(Button i));btn.addEventListener(click, function(){ console.log(${i} );});document.body.appendChild…

C/C++模板初阶

目录 1. 泛型编程 2. 函数模板 2.1 函数模板概念 2.1 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 1. 泛型编程 如何实现一个通用的交换函数呢&#xff1f; void Swap(int&…

用git命令来上传项目到GitHub我自己的仓库

目录 在GitHub上创建仓库并使用git命令上传到仓库的步骤如下&#xff1a; 其他操作 怎么退出git/COMMIT_EDITMSG [unix] 相关报错 error: src refspec main does not match any error: failed to push some refs to https://github.com/Liu22Jun16Liang/MyQt error: fail…

【每日一题】牛客网——链表分割

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️ &#x1f64f;小杨水平有…

C++新特性“CPU优化对齐”

哈喽 各位读者伙伴大家好 本篇文章讲一下C新特性 alignas&alignof 在这之前 我们大家应该先了解一下数据对齐的问题 什么是数据对齐问题呢&#xff1f; 以下是两个结构体在内存中的分布图: 为什么要数据对齐呢&#xff1f; 首先是CPU 电脑中的CPU&#xff08;单核或者多核…

opencv mat用法赋值克隆的操作和一些基本属性

//Mat基本结构 (头部 数据部分) //赋值的话 就是修改了指针位置 但还是指向了原来数据 并没创建数据 本质上并没有变 //只有克隆或者拷贝时 它才会真正复制一份数据 //代码实现 //创建方法 - 克隆 //Mat m1 src.clone(); //复制 //Mat m2; //src.copyTo(m2); //赋值法 …

Linux命令-bind命令(显示或设置键盘按键与其相关的功能)

说明 bind命令 用于显示和设置命令行的键盘序列绑定功能。通过这一命令&#xff0c;可以提高命令行中操作效率。可以利用bind命令了解有哪些按键组合与其功能&#xff0c;也可以自行指定要用哪些按键组合。 语法 bind(选项)选项 -d&#xff1a;显示按键配置的内容&#xff…

huggingface pipeline零训练样本分类Zero-Shot Classification的实现

1 &#xff1a; 默认的model 。 from huggingface_hub.hf_api import HfFolder HfFolder.save_token(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) from transformers import MBartForConditionalGeneration, MBart50TokenizerFastfrom transformers import pipelineclassifier p…