java包装类概述及作用
在java中,基本数据类型(如 int, char, boolean 等)不是对象,而是一些简单的数据值。
为了能够将这些基本类型作为对象来操作,java提供了对应的包装类。
这些包装类位于 java.lang 包中,它们是不可变的,即一旦创建了包装类的对象,就不能改变它的值。
对应包装类
long - 封装了基本类型
long
integer - 封装了基本类型
intshort - 封装了基本类型
shortbyte - 封装了基本类型
bytedouble - 封装了基本类型
doublefloat - 封装了基本类型
floatcharacter - 封装了基本类型
charboolean - 封装了基本类型
boolean
提供额外的方法包装类提供了一系列方法来处理对应的基本类型数据。
存储、、合中由于集合只能存储对象,因此使用包装类可以将基本类型的数据存储在集合中。
包装类的转换方法(parse)
integer.parseint(string s)
将字符串参数解析为有符号十进制整数。如果字符串不能被解析,则抛出 numberformatexception。
int num = integer.parseint("123");
system.out.println("parsed integer: " + num); // 输出: parsed integer: 123long.parselong(string s)
将字符串参数解析为有符号十进制长整数。如果字符串不能被解析,则抛出 numberformatexception。
long num = long.parselong("1234567890123456789");
system.out.println("parsed long: " + num); // 输出: parsed long: 1234567890123456789byte.parsebyte(string s)
将字符串参数解析为有符号十进制字节。如果字符串不能被解析,则抛出 numberformatexception。
byte num = byte.parsebyte("127");
system.out.println("parsed byte: " + num); // 输出: parsed byte: 127short.parseshort(string s)
将字符串参数解析为有符号十进制短整数。如果字符串不能被解析,则抛出 numberformatexception。
short num = short.parseshort("32767");
system.out.println("parsed short: " + num); // 输出: parsed short: 32767float.parsefloat(string s)
将字符串参数解析为浮点数。如果字符串不能被解析,则抛出 numberformatexception。
float num = float.parsefloat("123.45");
system.out.println("parsed float: " + num); // 输出: parsed float: 123.45double.parsedouble(string s)
将字符串参数解析为双精度浮点数。如果字符串不能被解析,则抛出 numberformatexception。
double num = double.parsedouble("123.456789");
system.out.println("parsed double: " + num); // 输出: parsed double: 123.456789正则表达式
正则表达式是一种强大的文本匹配工具,可以用来查找、替换、分割字符串等。
在java中,string 类也提供了一些直接使用正则表达式的方法,如 matches()、split()、replaceall() 等。
常用方法
matches(string regex): 判断该字符串是否匹配给定的正则表达式。如果整个字符串匹配成功,则返回
true;否则返回false。split(string regex): 根据给定的正则表达式将字符串分割成一个数组。
replaceall(string regex, string replacement): 替换所有匹配给定正则表达式的子字符串。
字符规则
.匹配除换行符以外的任意单个字符。
a.b可以匹配a1b、a2b等。
[abc]匹配方括号内的任意一个字符(如a、b或c)。
[abc]可以匹配a、b或c。
[a-z]匹配从a到z的任意一个字符。[a-z]可以匹配a、b、c等。
[a-z]匹配从a到z的任意一个字符。[a-z]可以匹配a、b、c等。
[0-9]匹配从0到9的任意一个数字。[0-9]可以匹配0、1、2等。
\w匹配任意一个单词字符(等价于[a-za-z0-9_])。\w可以匹配a、b、0、_等。
\w匹配任意一个非单词字符(等价于[^a-za-z0-9_])。\w可以匹配!、@、#等。
\d匹配任意一个数字(等价于[0-9])。\d可以匹配0、1、2等。
\d匹配任意一个非数字(等价于[^0-9])。\d可以匹配a、b、c等。
|匹配|左右两边的任意一个表达式。cat|dog可以匹配cat或dog。
数量规则
*匹配前面的字符零次或多次。a*可以匹配a、aa、aaa以及空字符串。
+匹配前面的字符一次或多次。a+可以匹配a、aa、aaa,但不匹配空字符串。
?匹配前面的字符零次或一次。a?可以匹配a以及空字符串。
{n}匹配前面的字符恰好n次。a{3}只能匹配aaa。
{n,}匹配前面的字符至少n次。a{3,}可以匹配aaa、aaaa等。
{n,m}匹配前面的字符至少n次,最多m次。a{2,4}可以匹配aa、aaa、aaaa,但不匹配a或aaaaa。
正则案例
匹配4到10位的数字
字符串结构:包含4到10位的数字。
示例:商品编号
1234、5678901234。
匹配由2到10个英文字母组成的字符串
字符串结构:包含2到10个英文字母。
示例:用户昵称
john、alicebob。
匹配由1到5个大写英文字母组成的字符串
字符串结构:包含1到5个大写英文字母。
示例:项目代号
abcd、xyz。
匹配由1到10个小写英文字母组成的字符串
字符串结构:包含1到10个小写英文字母。
示例:用户名
johndoe、alicebob。
匹配由1到10个数字和英文字母组成的字符串
字符串结构:包含1到10个数字和英文字母。
示例:用户名
john123、doe456。
匹配由1到10个数字、英文字母或下划线组成的字符串
字符串结构:包含1到10个数字、英文字母或下划线。
示例:用户名
john_doe123、doe_456。
匹配由1到10个任意字符组成的字符串
字符串结构:包含1到10个任意字符(除换行符外)。
示例:文件名
file.txt、document.docx。
匹配由1到10个数字或下划线组成的字符串
字符串结构:包含1到10个数字或下划线。
示例:变量名
var1、_temp2。
匹配由1到10个非数字字符组成的字符串
字符串结构:包含1到10个非数字字符。
示例:用户名
john_doe、alice_bob。
匹配由1到10个字母或下划线组成的字符串
字符串结构:包含1到10个字母或下划线。
示例:变量名
var_name、_temp_var。
匹配由1到10个字母或数字组成的字符串,且以字母开头
字符串结构:以字母开头,后面可以跟0到9个字母或数字。
示例:用户名
john123、doe456。
匹配由1到10个字母或数字组成的字符串,且以数字结尾
字符串结构:以数字结尾,前面可以是任意数量的字母或数字。
示例:用户名
john123、doe456。
匹配由1到10个字母或数字组成的字符串,且以字母结尾
字符串结构:以字母结尾,前面可以是任意数量的字母或数字。
示例:用户名
john123、doe456。
验证电话号码(中国手机号码)
字符串结构:符合标准的中国手机号码格式(13/14/15/16/17/18/19开头的11位数字)。
示例:
13812345678、15912345678。
验证邮政编码(中国邮政编码)
字符串结构:6位数字的中国邮政编码。
示例:
100000、200000。
验证日期格式(yyyy-mm-dd)
字符串结构:符合标准的日期格式(yyyy-mm-dd)。
示例:
2023-10-15。
验证用户名(3到16个字符,只能包含字母、数字和下划线)
字符串结构:3到16个字符,只能包含字母、数字和下划线。
示例:
john_doe、user123。
验证车牌号(中国车牌号)
字符串结构:符合标准的中国车牌号格式(省份简称 + 字母 + 5位字母或数字)。
京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼
a-z
示例:
京a12345、沪b67890。
验证身份证号(18位数字或17位数字加一个字母)
字符串结构:18位数字或17位数字加一个字母(0-9或x)。
示例:
123456789012345678、12345678901234567x。
结合java控制台
判断用户输入的用户名(6-10位数字,不以0开头)与密码(8-16位,可以包含数字,字母与特殊符号)
实现密码等级提示
有数字 +1
有小写字母 +1
有大写字母 +1
有特殊符号 +1
总结
到此这篇关于javaapi包装类与正则表达式用法的文章就介绍到这了,更多相关javaapi包装类与正则表达式内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论