Java包装类概述及作用
-
在Java中,基本数据类型(如 int , char , boolean 等)不是对象,而是一些简单的数据值。为了能够将这些基本类型作为对象来操作,Java提供了对应的包装类。
-
这些包装类位于 java.lang 包中,它们是不可变的,即一旦创建了包装类的对象,就不能改变它的值。
-
对应包装类
-
Long - 封装了基本类型 long
-
Integer - 封装了基本类型 int
-
Short - 封装了基本类型 short
-
Byte - 封装了基本类型 byte
-
Double - 封装了基本类型 double
-
Float - 封装了基本类型 float
-
Character - 封装了基本类型 char
-
Boolean - 封装了基本类型 boolean
-
提供额外的方法包装类提供了一系列方法来处理对应的基本类型数据。
-
存储在集合中由于集合只能存储对象,因此使用包装类可以将基本类型的数据存储在集合中。
-
-
包装类的转换方法(parse)
-
Integer.parseInt(String s)
int num = Integer.parseInt("123"); System.out.println("Parsed integer: " + num); / 输出: Parsed integer: 123
-
Long.parseLong(String s)
long num = Long.parseLong("1234567890123456789"); System.out.println("Parsed long: " + num); / 输出: Parsed long: 1234567890123456789
-
Byte.parseByte(String s)
byte num = Byte.parseByte("127"); System.out.println("Parsed byte: " + num); / 输出: Parsed byte: 127
-
Short.parseShort(String s)
short num = Short.parseShort("32767"); System.out.println("Parsed short: " + num); / 输出: Parsed short: 32767
-
Float.parseFloat(String s)
float num = Float.parseFloat("123.45"); System.out.println("Parsed float: " + num); / 输出: Parsed float: 123.45
-
Double.parseDouble(String s)
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): 替换所有匹配给定正则表达式的子字符串。
-
-
正则表达式的基本书写符号
-
. 代表任意字符
-
\w 代表字母、数字、下划线
-
\d 代表数字
-
+指定字符重复1次或者n次,最少1次
-
? 指定字符重复0-1次
-
{n} 只能重复n次
-
{a,} 最少重复a次
-
{,a} 最多重复a次
-
{a,b} 最少重复a次,最多重复b次
-
\s 空格
-
| 代表或者
-
[a-zA-Z0-9],可以是a-z、A-Z、0-9中的任意一个
-
[a-z] 可以是a-z中间的任意一个
-
*任意次,可有可无
-
切记:Java中的\都是有两根的,"\\s","\\w","\\d"
-
.* \d * 代表有数字
-
.* [a-z] .* 代表有小写字母
-
.* [A-Z] .* 代表有大写字母
-
.* [@!.] .* 代表有特殊符号
-
-
正则结合代码
验证1~12个月: while(true) { System.out.println("请输入月份"); String ii = sc.next(); if(ii.matches("[1-9]|[1][0-2]")){ System.out.println("您输入的为:"+ii+"月"); break; }else { System.out.println("输入错误"); continue; } }