android学习札记第5章之正则、数字包装javaapi3
1、一种字符串格式匹配规则,一般用来验证用户输入的格式是否符合要求。
[ ]:字符集,匹配任意一个字符。
更多正则表达式匹配规则参照JDK手册,以下列举一些常用规则:
[abc]: a,b,c
[a-z]: 任意小写英文字母
[a-zA-Z0-9]:任意字母数字
[a-zA-Z_0-9]:任意字母数字加下划线
[^a-zA-Z]: 除了字母
\d: 数字[0-9]
\D: 排除数字[^0-9]
\w: 单词字符[a-zA-Z_0-9]
\W: 排除单词字符[^a-zA-Z_0-9]
\s: 空白字符(空格、回车、换行符)
\S: 排除空白字符
.: 任意字符
[\u4e00-\u9fa5]:中文字符
[abc] ?:0或1次
[abc]* *:0到多次
[abc]+ +:1到多次
[abc]{3}: 3次(如:aaa、bbb)
[abc]{3,5}: 3到5次
[abc]{3,}: 3到多次
|:左侧或右侧
2、方法:
matches(正则):判断当前字符串,能否与正则表达式匹配。
replaceAll(正则,子串):将找到的匹配子串,替换为新的子串。
split(正则):用匹配的子串,拆分字符串,返回字符串数组。
下面以①用正则表达式邮箱验证②屏蔽不良言论③分割字符串为例。
3、java.util.regex.Pattern
java.util.regex.Matcher
①
Pattern是对正则表达式的封装对象
Matcher是对正则表达式和要匹配的字符串的封装对象
②创建对象
Pattern p=Pattern.compile(正则表达式);
Matcher m=p.matcher(要匹配的字符串);
③方法
boolean find():寻找下一段匹配子串,找到返回true,找不到返回false。
boolean find(int from):从指定位置寻找下一段匹配子串,找到返回true,找不到返回false。
String group():获取刚刚找到的子串。
int start():获取刚刚找到的子串的起始位置。
int end():获取刚刚找到的子串的结束位置+1。
1、数字基本类型/包装类:
byte/ Byte
short/Short
int/Integer
long/Long
float/Float
double/Double
char/Character
boolean/Boolean
①数字包装类的“抽象”父类:Number
②子类:Byte、Short、Integer、Long、Float、Double
③方法:从包装对象内取值的方法。
byteValue()
shortValue()
intValue()
longValue()
floatValue()
doubleValue()
④创建对象
方法一:
Integer a=new Integer(10);//直接新建对象,将10封装成Integer类型。
方法二:
Integer a=Integer.valueOf(10);//在Integer类内部,缓存了-128~127的封装对象,如果指定的是范围内的值,直接获取缓存中存在的对象,提高了效率;如果指定的值是范围外的值,会新建对象。
⑤Integer的方法(其他包装类和Integer类似)
Integer.parseInt("255");//255
将字符串解析成整数。
Integer.parseInt("11111111",2);//255
将字符串按二进制解析成整数
Integer.toBinaryString(255);//11111111
Integer.toOctalString(255);//377
将数字转换成不同进制的字符串
⑥、自动装箱
Integer a=10;被程序编译成:Integer a=Integer.valueOf(10);->先创建对象,把引用赋给a再给a赋值10。
⑦、自动拆箱
Integer a=10;int i=a;被编译成:int i=a.intValue;
a=a+1;被编译成:a=Integer.valueOf(a.intVlue()+1);->先从包装类中取值,再赋给i。
注意:要判断a是否为空(null),防止造成空指针。
2、java.lang.Double是Number其中一个子类:
①创建对象
Double d=new Double(3.14);
Double d=Double.valueOf(3.14);->没有缓存,直接创建对象。
②方法
对特殊值进行判断的方法
boolean Double.isInfinite(double d)->判断是否是特殊值infinity无穷大
boolean Double.isNaN(double d)->判断是否是特殊值NaN非数字
1、①
BigDecimal:大数字对象,做精确的浮点数运算。
BigInteger:做超出长整型范围的整数运算
②创建对象
BigDecimal bd=BigDecimal.valueOf(3.14);
BigInteger x=BigInteger.valueOf(0);(创建对象的方式)
2、BigDecimal的方法:
add(BigDecimal bd):加法
subtract(BigDecimal bd):减法
multiply(BigDecimal bd):乘法
divide(BigDecimal bd):除法
divide(BigDecimal bd,保留小数位数,保留方式):除法(默认保留1位小数)
以上计算结果都返回一个BigDecimal对象
取值方法:
byteValue()
shortValue()
intValue()
longValue()
floatValue()
doubleValue()
转换成字符串显示:
toString()
四舍五入方法:
setScale(保留小数位数,保留方式):
BigDecimal bd1=BigDecimal.valueOf(3.1415926);
BigDecimal bd2=bd.setScale(2,BigDecimal.Round_HALF_UP);//保留小数两位四舍五入
double d=bd2.doubleValue();
System.out.println(d);
3、java.math.BigInteger
BigInteger和BigDecimal类似,参考BigDecimal即可。
1、①数字格式工具:将数字和字符串相互转化(数字格式化)
②创建对象:
DecimalFormat df=new DecimalFormat(格式字符串);
"$###,###.000":#表示有数字显示数字,没有数字不显示;0表示没有数字显示0。
2、DecimalFormat的方法:
format(数字):把数字格式化成字符串
Number parse(字符串):字符串解析成数字,返回Number对象。
applyPattern(格式字符串):修改格式字符串
注:解析字符串方法parse()会产生异常,需要捕获。
1、Math是抽象类,无法创建对象,但它有许多静态方法,可以调用这些静态方法进行基本的数据运算。
2、Math的方法:
System.out.println(Math.E);
System.out.println(Math.PI);
System.out.println(Math.sqrt(4));
System.out.println(Math.pow(2, 3));
System.out.println(Math.round(5.6));
System.out.println(Math.min(3, 4));
System.out.println(Math.abs(-1));
System.out.println(Math.floor(9.9));