Java Boolean类,Java Character类,Java Number类

Boolean 类将基本类型为 boolean 的值包装在一个对象中。一个 Boolean 类的对象只包含一个类型为 boolean 的字段。此外,此类还为 boolean 和 String 的相互转换提供了很多方法,并提供了处理 boolean 时非常有用的其他一些常用方法。

Boolean 类的构造方法

Boolean 类有以下两种构造形式:

 
  1. Boolean(boolean boolValue);
  2. Boolean(String boolString);


其中 boolValue 必须是 true 或 false(不区分大小写),boolString 包含字符串 true(不区分大小写),那么新的 Boolean 对象将包含 true;否则将包含 false。

Boolean 类的常用方法

在 Boolean 类内部包含了一些和 Boolean 操作有关的方法,见表 1。
 

表 1 Boolean 类中的常用方法
方法返回值功能
booleanValue()boolean将 Boolean 对象的值以对应的 boolean 值返回
equals(Object obj)boolean判断调用该方法的对象与 obj 是否相等。当且仅当参数不是 null,且与调用该
方法的对象一样都表示同一个 boolean 值的 Boolean 对象时,才返回 true
parseBoolean(String s)boolean将字符串参数解析为 boolean 值
toString()string返回表示该 boolean 值的 String 对象
valueOf(String s)boolean返回一个用指定的字符串表示的 boolean 值
例 1

编写一个 java 程序,演示如何使用不同的构造方法创建 Boolean 对象,并调用 booleanValue() 主法将创建的对象重新转换为 boolean 数据输出。代码如下:

 
  1. public class Test05 {
  2. public static void main(String[] args) {
  3. Boolean b1 = new Boolean(true);
  4. Boolean b2 = new Boolean("ok");
  5. Boolean b3 = new Boolean("true");
  6. System.out.println("b1 转换为 boolean 值是:" + b1);
  7. System.out.println("b2 转换为 boolean 值是:" + b2);
  8. System.out.println("b3 转换为 boolean 值是:" + b3);
  9. }
  10. }

程序非常简单,运行后的输出结果如下:

b1 转换为 boolean 值是:true
b2 转换为 boolean 值是:false
b3 转换为 boolean 值是:true

Boolean 类的常用常量

在 Boolean 类中包含了很多的常量,其中较为常用的常量如下。

  • TRUE:对应基值 true 的 Boolean 对象。
  • FALSE:对应基值 false 的 Boolean 对象。
  • TYPE:表示基本类型 boolean 的 Class 对象。

Java Character类

Character 类是字符数据类型 char 的包装类。Character 类的对象包含类型为 char 的单个字段,这样能把基本数据类型当对象来处理,其常用方法如表 1 所示。
 

表 1 Character类的常用方法
方法描述
void Character(char value)构造一个新分配的 Character 对象,用以表示指定的 char 值
char charValue()返回此 Character 对象的值,此对象表示基本 char 值
int compareTo(Character anotherCharacter)根据数字比较两个 Character 对象
boolean equals(Character anotherCharacter)将此对象与指定对象比较,当且仅当参数不是 null,而 是一个与此对象
包含相同 char 值的 Character 对象时, 结果才是 true
boolean isDigit(char ch)确定指定字符是否为数字,如果通过 Character. getType(ch) 提供的字
符的常规类别类型为 DECIMAL_DIGIT_NUMBER,则字符为数字
boolean isLetter(int codePoint)确定指定字符(Unicode 代码点)是否为字母
boolean isLetterOrDigit(int codePoint)确定指定字符(Unicode 代码点)是否为字母或数字
boolean isLowerCase(char ch)确定指定字符是否为小写字母
boolean isUpperCase(char ch)确定指定字符是否为大写字母
char toLowerCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写
char toUpperCase(char ch)使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写


可以从 char 值中创建一个 Character 对象。例如,下列语句为字符 S 创建了一个 Character 对象。

 
  1. Character character = new Character('S');


CompareTo() 方法将这个字符与其他字符比较,并且返回一个整型数组,这个值是两个字符比较后的标准代码差值。当且仅当两个字符相同时,equals() 方法的返回值才为 true。如下面的代码:

 
  1. Character character = new Character('A');
  2. int result1 = character.compareTo(new Character('V'));
  3. System.out.println(result1); // 输出:0
  4. int result2 = character.compareTo(new Character('B'));
  5. System.out.println(resuit2); // 输出:-1
  6. int result3 = character.compareTo(new Character('1'));
  7. System.out.println(result3); // 输出:-2
例 1

在注册会员时,需要验证用户输入的用户名、密码、性别、年龄和邮箱地址等信息是否符合标准,如果符合标准方可进行注册。那么,下面就使用 Character 类中的一些静态方法来完成这个程序,具体的实现步骤如下。

1)创建 Register 类,在该类中创建 validateUser() 方法,对用户输入的用户名、密码和年龄进行验证,代码如下:

 
  1. public class Register {
  2. public static boolean validateUser(String uname,String upwd,String age) {
  3. boolean conUname = false; // 用户名是否符合要求
  4. boolean conPwd = false; // 密码是否符合要求
  5. boolean conAge = false; // 年龄是否符合要求
  6. boolean con = false; // 验证是否通过
  7. if (uname.length() > 0) {
  8. for (int i = 0;i < uname.length();i++) {
  9. // 验证用户名是否全部为字母,不能含有空格
  10. if (Character.isLetter(uname.charAt(i))) {
  11. conUname = true;
  12. } else {
  13. conUname = false;
  14. System.out.println("用户名只能由字母组成,且不能含有空格!");
  15. break;
  16. }
  17. }
  18. } else {
  19. System.out.println("用户名不能为空!");
  20. }
  21. if (upwd.length() > 0) {
  22. for (int j=0;j<upwd.length();j++) {
  23. // 验证密码是否由数字和字母组成,不能含有空格
  24. if (Character.isLetterOrDigit(upwd.charAt(j))) {
  25. conPwd = true;
  26. } else {
  27. conPwd = false;
  28. System.out.println("密码只能由数字或字母组成!");
  29. break;
  30. }
  31. }
  32. } else {
  33. System.out.println("密码不能为空!");
  34. }
  35. if (age.length() > 0) {
  36. for (int k = 0;k < age.length();k++) {
  37. // 验证年龄是否由数字组成
  38. if (Character.isDigit(age.charAt(k))) {
  39. conAge = true;
  40. } else {
  41. conAge = false;
  42. System.out.println("年龄输入有误!");
  43. break;
  44. }
  45. }
  46. } else {
  47. System.out.println("年龄必须输入!");
  48. }
  49. if (conUname && conPwd && conAge) {
  50. con = true;
  51. } else {
  52. con = false;
  53. }
  54. return con;
  55. }
  56. }

在 validateUser() 方法中,使用 for 循环遍历用户输入的用户名、密码和年龄,对其每个字符进行验证,判断其是否符合要求。在验证的过程中,分别使用了 Character 类的 isLetter() 方法、isLetterOrDigit() 方法和 isDigit() 方法。

2)编写测试类 Test04,调用 Register 类中的 validateUser() 方法,对用户输入的数据进行验证,并输出验证结果,代码如下:

 
  1. import java.util.Scanner;
  2. public class Test04 {
  3. public static void main(String[] args) {
  4. Scanner input = new Scanner(System.in);
  5. System.out.println("------------用户注册--------------");
  6. System.out.println("用户名:");
  7. String username = input.next();
  8. System.out.println("密码:");
  9. String pwd = input.next();
  10. System.out.println("年龄:");
  11. String age = input.next();
  12. boolean con = Register.validateUser(username,pwd,age);
  13. if (con) {
  14. System.out.println("注册成功!");
  15. } else {
  16. System.out.println("注册失败!");
  17. }
  18. }
  19. }

在 main() 方法中,通过调用 Register 类的 validateUser() 方法,获取一个 boolean 类型的变量,即表明是否验证通过。当变量值为 true 时,表示验证通过,输出注册成功的提示信息;否则表示验证未通过,输出注册失败的提示信息。

运行该程序,当注册的用户名并非全部由字母组成时,提示“用户名只能由字母组成, 且不能含有空格!”信息,如下所示。

------------用户注册--------------
用户名:
tg_xiake
密码:
xiake
年龄:
123
用户名只能由字母组成,且不能含有空格!
注册失败!

当注册的年龄并非只有数字组成时,则提示“年龄输入有误!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin
年龄:
123a
年龄输入有误!
注册失败!

当注册的密码并非只由数字或字母组成时,提示“密码只能由数字或字母组成!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin!
年龄:
25
密码只能由数字或字母组成!
注册失败!

如果注册的用户名、密码和年龄都通过验证,则输出“注册成功!”,如下所示。

------------用户注册--------------
用户名:
admin
密码:
admin
年龄:
123
注册成功!

Java Number类

Number 是一个抽象类,也是一个超类(即父类)。Number 类属于 java.lang 包,所有的包装类(如 Double、Float、Byte、Short、Integer 以及 Long)都是抽象类 Number 的子类。

Number 类定义了一些抽象方法,以各种不同数字格式返回对象的值。如 xxxValue() 方法,它将 Number 对象转换为 xxx 数据类型的值并返回。这些方法如下表所示:
 

Number类的方法
方法说明
byte byteValue();  返回 byte 类型的值
double doubleValue();返回 double 类型的值
float floatValue();返回 float 类型的值
int intValue();返回 int 类型的值
long longValue();返回 long 类型的值
short shortValue();返回 short 类型的值


抽象类不能直接实例化,而是必须实例化其具体的子类。如下代码演示了 Number 类的使用:

 
  1. Number num = new Double(12.5);
  2. System.out.println("返回 double 类型的值:" + num.doubleValue());
  3. System.out.println("返回 int 类型的值:" + num.intValue());
  4. System.out.println("返回 float 类型的值:" + num.floatValue());


执行上述代码,输出结果如下:

返回 double 类型的值:12.5
返回 int 类型的值:12
返回 float 类型的值:12.5

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

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

相关文章

nginx浏览器缓存和上流缓存expires指令_nginx配置HTTPS

1.nginx控制浏览器缓存是针对于静态资源[js,css,图片等] 1.1 expires指令 location /static {alias/home/imooc;#设置浏览器缓存10s过期expires 10s;#设置浏览器缓存时间晚上22:30分过期expires @22h30m;#设置浏览器缓存1小时候过期expires -1h;#设置浏览器不缓存expires …

在python里如何实现switch函数的功能

在许多编程语言中&#xff0c;包括Python&#xff0c;都提供了switch语句或类似的功能来根据不同的条件执行不同的代码块。然而&#xff0c;Python本身并没有内置的switch语句&#xff0c;但是您可以使用其他方式来实现类似的功能。下面是一种常见的方法&#xff1a; 使用if-e…

Java零基础入门-赋值运算符

前言 Java是一门广泛被应用的编程语言&#xff0c;它被用于开发各种类型的应用程序&#xff0c;从桌面应用程序到企业级后端系统。对于零基础的人来说&#xff0c;学习Java可能会感到有些困难。本文将帮助那些没有编程经验的人了解Java的赋值运算符。 摘要 本文将介绍Java中…

NSSCTF做题第9页(2)

[SWPUCTF 2022 新生赛]ez_1zpop <?php error_reporting(0); class dxg { function fmm() { return "nonono"; } } class lt { public $impohi; public $md51weclome; public $md52to NSS; function __construct() { $this-&…

EF Core中带过滤器参数的Include方法

概要 本文主要介绍EF Core 5.0中一个新特性&#xff0c;就是Include方法支持带过滤器的委托参数&#xff0c;并且说明一下该特性在实际使用中的一个大坑&#xff0c;希望读者在未来的开发中避免踩坑。 本文使用的是Dotnet 6.0和EF Core 7.0。 代码和实现 案例介绍 本文主要…

springboot + redis实现签到与统计功能

在很多项目中都会有签到与统计功能&#xff0c;最容易想到的方案是创建一个签到表来记录每个用户的签到记录&#xff0c;比如设计一个mysql数据库表&#xff1a; CREATE TABLE tb_sign id bigint(20) unsigned NOT NULL AUTOINCREMENT COMMENT 主键, user_id bigint(20) unsig…

从零开始的C++(十二)

长风破浪会有时&#xff0c;直挂云帆济沧海。 List&#xff1a; 链式结构&#xff0c;类似带头双向循环链表。 常见成员函数&#xff1a; push_back()&#xff1a;尾插 pop_back(&#xff09;&#xff1a;尾删 push_front()&#xff1a;头插 pop_front()&#…

【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上

深入探索Java特性中并发编程体系的原理和实战开发指南&#xff08; 实现可伸缩IO专题&#xff09; 总体内容概览可扩展的网络服务分布式对象传统的阻塞式网络服务每个请求或连接可以在独立的线程中进行处理Server服务处理请求类Handler处理逻辑类优点缺点 可扩展性目标平稳降级…

MySQL Join 类型

文章目录 1 Join 类型有哪些2 Inner Join3 Left Join4 Right Join5 Full Join 1 Join 类型有哪些 SQL Join 类型的区别 Inner Join: 左,右表都有的数据Left Join: 左表返回所有的行, 右表没有的补充为 NULLRight Loin: 右表返回所有的行, 左表没有的补充为 NULLFull Outer J…

Excel多线程导入数据库

文章目录 Excel多线程导入数据库1. CountDownLatch2.多线程导入数据库 Excel多线程导入数据库 书接上文 Excel20w数据5s导入 1. CountDownLatch CountDownLatch 维护了一个计数器&#xff0c;初始值为指定的数量。当一个或多个线程调用 await() 方法时&#xff0c;它们会被阻…

【flink sql table api】时间属性的指定与使用注意事项

文章目录 一. 时间属性介绍二. Table api指定时间属性三. 处理时间的指定1. 在创建表的 DDL 中定义2. 在 DataStream 到 Table 转换时定义3. 使用 TableSource 定义 四. 事件时间的指定1. 在 DDL 中定义2. 在 DataStream 到 Table 转换时定义3. 使用 TableSource 定义 五. 小结…

力扣每日一题70:爬楼梯

题目描述&#xff1a; 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1. 1 阶 1 阶 …

redis 配置主从复制,哨兵模式案例

哨兵(Sentinel)模式 1 . 什么是哨兵模式&#xff1f; 反客为主的自动版&#xff0c;能够自动监控master是否发生故障&#xff0c;如果故障了会根据投票数从slave中挑选一个 作为master&#xff0c;其他的slave会自动转向同步新的master&#xff0c;实现故障自动转义 2 . 原理…

简析新能源汽车充电桩设计与应用

叶根胜 安科瑞电气股份有限公司 上海嘉定 201801 摘要&#xff1a;本文针对新能源汽车充电桩建设工作进行探究&#xff0c;采用案例分析法、文献查阅法&#xff0c;指出了新能源汽车充电桩建设存在的问题&#xff0c;阐述了充电桩建设与优化的对策。研究表明&#xff1a;目前…

php实现防止Struts2框架漏洞中的远程命令执行攻击的代码

使用PHP过滤器 PHP提供了一些内置的过滤器&#xff0c;可以过滤掉一些恶意代码。可以使用以下代码将输入数据进行过滤&#xff1a; ​$input $_POST[input]; $safe_input filter_var($input, FILTER_SANITIZE_STRING); 使用escapeshellcmd()和escapeshellarg() 可以使用PHP…

189. 轮转数组 --力扣 --JAVA

题目 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 解题思路 通过位移后位置对数组长度的取余来判断元素变换后的位置 代码展示 class Solution {public void rotate(int[] nums, int k) {int size nums.length;int[]…

python 使用json包在json格式字符串和python对象之间的变化

起因&#xff1a;使用python json包时&#xff0c;将键值对均为数字的字典存入txt文件后重新加载进字典后出现“字典key值不唯一”的神奇现象。 相关代码&#xff1a; 字典添加数据部分 def xuhao_chuti(self):rand random.randint(1, 908)if rand in self.memery.keys() an…

element-ui的日历组件el-calendar高度咋调小

最近项目首页有个空余 不知道放啥 打算放个日历card 充充位置&#xff0c; el-calendar日历组件的整体宽度可以用el-row el-col :gutter :span来控制自适应 但是官网文档没说高度咋缩小 细长一条好难看 自己尝试改了改element的样式没整出来 最后照着这位博主的方法改是好使滴…

软考系列(系统架构师)- 2014年系统架构师软考案例分析考点

试题一 软件架构&#xff08;MYC 架构、扩展接口模式&#xff09; MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型&#xff08;Model)&#xff0c;V代表视图&#xff08;View)&#xff0c;C代表控制器&#xff08;Controller)。在该风格…

windows/mac/linux 用C++搭建一个刷题模拟器

一个刷题模拟器&#xff0c;一定要有题&#xff0c;题目从这里下载 欢迎大家提供新题目&#xff08;请把题目文件夹压缩成zip后发给我chengyixuan130812163.com&#xff09;&#xff0c;我会定期更新的。 题目格式&#xff1a; 题目编号 nums.txt&#xff08;评测点个数&#x…