android学习札记第5章之正则、数字包装javaapi3

android学习札记第5章之正则、数字包装javaapi3,这节将要讲述adroid开发中又一重要的JAVAAPI知识,正则表达式、数字包装类Numer及其子类和java.math包下针对超出长整型数字和精确浮点数的包装类,还有,数字格式化工具和java.lag.Math基本数据运算类的使用方法。
这节将要讲述android开发中又一重要的JAVAAPI知识,正则表达式、数字包装类Number及其子类和java.math包下针对超出长整型数字和精确浮点数的包装类,还有,数字格式化工具和java.lang.Math基本数据运算类的使用方法。工具/原料JDK、eclipse、androidSDK、ADT一、JAVAAPI之正则表达式java.util.regex1一种字符串格式匹配规则,一般用来验证用户输入的格式是否符合要求。[]:字符集,匹配任意一个字符。更多正则表达式匹配规则参照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(正则):用匹配的子串,拆分字符串,返回字符串数组。下面以①用正则表达式邮箱验证②屏蔽不良言论③分割字符串为例。步骤阅读步骤阅读步骤阅读3java.util.regex.Pattern java.util.regex.Matcher① Pattern是对正则表达式的封装对象 Matcher是对正则表达式和要匹配的字符串的封装对象 ②创建对象 Patternp=Pattern.compile(正则表达式); Matcherm=p.matcher(要匹配的字符串); ③方法 booleanfind():寻找下一段匹配子串,找到返回true,找不到返回false。 booleanfind(intfrom):从指定位置寻找下一段匹配子串,找到返回true,找不到返回false。 Stringgroup():获取刚刚找到的子串。 intstart():获取刚刚找到的子串的起始位置。 intend():获取刚刚找到的子串的结束位置+1。步骤阅读END二、JAVAAPI之数字包装类java.lang.Number和Double1数字基本类型/包装类: 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() ④创建对象方法一:Integera=newInteger(10);//直接新建对象,将10封装成Integer类型。方法二: Integera=Integer.valueOf(10);//在Integer类内部,缓存了-128~127的封装对象,如果指定的是范围内的值,直接获取缓存中存在的对象,提高了效率;如果指定的值是范围外的值,会新建对象。 ⑤Integer的方法(其他包装类和Integer类似) Integer.parseInt(\"255\");//255将字符串解析成整数。 Integer.parseInt(\"11111111\",2);//255将字符串按二进制解析成整数 Integer.toBinaryString(255);//11111111Integer.toOctalString(255);//377 将数字转换成不同进制的字符串 ⑥、自动装箱 Integera=10;被程序编译成:Integera=Integer.valueOf(10);->先创建对象,把引用赋给a再给a赋值10。 ⑦、自动拆箱 Integera=10;inti=a;被编译成:inti=a.intValue; a=a+1;被编译成:a=Integer.valueOf(a.intVlue()+1);->先从包装类中取值,再赋给i。 注意:要判断a是否为空(null),防止造成空指针。步骤阅读步骤阅读2java.lang.Double是Number其中一个子类:①创建对象 Doubled=newDouble(3.14); Doubled=Double.valueOf(3.14);->没有缓存,直接创建对象。 ②方法 对特殊值进行判断的方法 booleanDouble.isInfinite(doubled)->判断是否是特殊值infinity无穷大 booleanDouble.isNaN(doubled)->判断是否是特殊值NaN非数字步骤阅读END三、JAVAAPI之大数字包装类java.math.BigDecimal和BigInteger1①BigDecimal:大数字对象,做精确的浮点数运算。BigInteger:做超出长整型范围的整数运算②创建对象BigDecimalbd=BigDecimal.valueOf(3.14);BigIntegerx=BigInteger.valueOf(0);(创建对象的方式)步骤阅读2BigDecimal的方法: add(BigDecimalbd):加法 subtract(BigDecimalbd):减法 multiply(BigDecimalbd):乘法 divide(BigDecimalbd):除法 divide(BigDecimalbd,保留小数位数,保留方式):除法(默认保留1位小数) 以上计算结果都返回一个BigDecimal对象 取值方法: byteValue() shortValue() intValue() longValue() floatValue() doubleValue() 转换成字符串显示: toString() 四舍五入方法: setScale(保留小数位数,保留方式): BigDecimalbd1=BigDecimal.valueOf(3.1415926); BigDecimalbd2=bd.setScale(2,BigDecimal.Round_HALF_UP);//保留小数两位四舍五入 doubled=bd2.doubleValue();System.out.println(d);步骤阅读步骤阅读3java.math.BigIntegerBigInteger和BigDecimal类似,参考BigDecimal即可。步骤阅读END四、JAVAAPI之数字格式工具java.text.DecimalFormat1①数字格式工具:将数字和字符串相互转化(数字格式化) ②创建对象: DecimalFormatdf=newDecimalFormat(格式字符串); \"$###,###.000\":#表示有数字显示数字,没有数字不显示;0表示没有数字显示0。步骤阅读2DecimalFormat的方法: format(数字):把数字格式化成字符串 Numberparse(字符串):字符串解析成数字,返回Number对象。 applyPattern(格式字符串):修改格式字符串注:解析字符串方法parse()会产生异常,需要捕获。步骤阅读END五、JAVAAPI之基本数学运算类java.lang.Math1Math是抽象类,无法创建对象,但它有许多静态方法,可以调用这些静态方法进行基本的数据运算。步骤阅读2Math的方法: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));步骤阅读END注意事项一些正则表达式比较复杂,不需要记住,只要在有需求用的时候百度查即可。在使用数字包装类时,要注意自动装箱和自动拆箱时的隐藏操作,尤其自动拆箱时要判断包装类型的数字是否为空,否则容易造成空指针异常。

本文来自投稿,不代表长河网立场,转载请注明出处: http://www.changhe99.com/a/XJwQRLedEZ.html

(0)

相关推荐