您的位置:首页 > 职场人生

黑马程序员——第九篇:Integer、Character、正则表达式、大数据运算、日期类

2015-12-16 14:36 323 查看
  ------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a

   href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

1. Integer类,包装int类型

1. 构造方法

      Integer(String s)
必须是数字格式

      字符串封装成Integer对象

2. 程序演示



 

2. int类型和String类型互转

1.  String转成基本类型int

      静态方法parseInt(String s),计算结果int类型

 

      静态方法parseInt(String s, int radix)

      计算结果都是十进制,后面参数,表示的是前面的数是几进制的

 

      非静态方法,对象调用  int intValue()将构造方法中的字符串转成int类型

 

      静态方法 Integer valueOf(String s)传递数字格式字符串,将这个字符串

      封装成Integer对象,intValue()将字符串转成int类型

 

2.  int类型转成String类型

      1+"" 简单方便,代码少

 

3.  int类型转成String类型

         Integer类静态方法toString()

 

static String  toString(int i)将int类型直接转成String类型

     但是:方法不是重写Object类的

 

     static String  toString(int i,int radix)传递进制数

         4. 程序演示:





 

3. Integer类常用进制转换方法

1. static String toBinaryString(int i)将参数转成二进制
2. static String toHexString(int i)将参数转成十六进制
3. static String toOctalString(int i)将参数转成八进制
4.程序演示:



4. JDK1.5新特性

1. 自动装箱

    基本数据类型,直接变成对象,自动完成

 

2. 自动拆箱

对象变成基本数据类型,自动完成

3. 程序演示



 

5. char类型的包装类Character

1. 判断的静态方法

      static boolean isUpperCase(char c)判断字符是不是大写,如果是返回true

      static boolean isLowerCase(char c)判断字符是不是小写,如果是返回true

      static boolean isDigit(char c)判断字符是不是数字,如果是返回true

 

2. 转换的静态方法

      static char toUpperCase(char c)将字符转成大写

      static char toLowerCase(char c)将字符转成小写

6. 正则表达式 (Regex)

正则表达式作用:
可以针对字符串进行操作(复杂的操作)

   String,Buffer,Builder
对于字符串的操作,远远不够

 

   1. 正则表达式体验

     要求:验证QQ号码是不是合法

        规则:不能0开头,全数字,长度
5-15位之间

         String qq = "123456567"

 

         String类验证非常复杂,繁琐,代码多

         正则表达式验证,简单很多

     注:学习正则表达式,
规则的写法

 

   2. 正则规则写法

     字符类:

    [abc]      可以匹配abc

         [^abc]     匹配不是abc

         [a-z]      匹配所有小写字母

         [a-zA-Z]   匹配所有字母

         [^a-zA-Z]  匹配所有不是字母

 

     预定义字符类:

     .          匹配任意字符

         \d         匹配所有数字 [0-9]

         \D         匹配所有非数字 [^0-9]

         \w         匹配所有单词字符 [a-zA-Z0-9_]

         \W         匹配所有非单词字符 [^a-zA-Z0-9_]

 

     数量词:

    X?         X字符出现一次或者一次也没有

         X*         X字符出现零次或者多次

         X+         X字符出现一次或者多次

         X{n}       X字符出现正好n次

         X{n,}      X字符出现至少n次

         X{n,m}     X字符出现至少n次,但是不能超过m次

3. 正则表达式练习题

 A:验证手机号码

/*
 *
验证电话号码: 移动电话号码
 *  
规则
 *     1开头
 *     3,5,8,6,7,4
 *    
数字0-9
 *    
必须11位
 */
publicclass RegexTest {
    publicstaticvoid main(String[] args) {
       String number =
"13800138000";
       boolean b = number.matches("1[358674][0-9]{9}");
       System.out.println(b);
    }
}

A:验证邮箱

/*
 *
正则表达式练习
 *  
邮箱验证
 *  
字符串排序
 *     91 27 46 38 50
 *     27 38 46 50 91
 */
publicclass RegexTest1 {
    publicstaticvoid main(String[] args) {
       boolean b =check_Email();
       System.out.println(b);
      
       stringSort();
    }
    /*
     *
字符串排序
     *  
转成数组排序==> int数组, char
     *   91 27 46 38 50 
字符串
     *   91 27 46 38 50 int数组
     *  
排序int数组 ==> 字符串
     */
    publicstaticvoid stringSort(){
       String s =
"91 27 46 38    50";
       //对字符串,进行切割,空格
       String[] str = s.split(" +");
       //创建int类型数组,长度,和字符串数组一致
       int[] arr =newint[str.length];
       //遍历字符串数组,获取每个元素,存储到int数组
       for(int x = 0 ; x < str.length;x++){
           arr[x] = Integer.parseInt(str[x]);
       }
       Arrays.sort(arr);
       //将int数组变成字符串
       //创建字符串缓冲区对象
       StringBuilder builder =
new
StringBuilder();
       for(int x = 0 ; x < arr.length;x++){
           if(x==arr.length-1)
              builder.append(arr[x]);
           else
              builder.append(arr[x]+" ");
       }
       s = builder.toString();
       System.out.println(s);
    }
   
    /*
     *
邮箱验证: 地址格式正确与否
     * XXX@XXX.com
     * @:前面 数字,字母,_ \\w
     * @:后面 .前面  字母,数字   qq.com 163.com yahoo.com
     * .后面  字母.com .cn.

     */
    publicstaticboolean check_Email(){
       String email =
"12345@qq.com.cn";
       return email.matches("[a-zA-Z0-9_]+@[a-z0-9]+(\\.[a-z]+)+");
    }
}

7. 正则表达式四大功能

  1. 匹配功能:字符串是不是和正则规则匹配,如果匹配返回true

     使用String类的方法 matches("规则")返回boolean

 

  2. 切割功能:将字符串按照一定的正则规则进行切割

     使用String类的方法 split("规则")返回存储字符串的数组

 

  3. 替换功能:将字符串按照正则规则进行替换

     使用String类的方法 replaceAll("规则","替换后的新字符串")

 

  4. 获取功能:在一个字符串中,使用正则表达式,可以获取出我们想要的任何内容

     da jia ting wo shuo,jin tian yao xia yu,bu shang wan zi xi,gao xing bu?

     抓取:从以上字符串中,抓取出想要的内容,获取出所有的三个字母的单词

8. Math 数学计算类

  包含的是数学运算

  Math类中的方法全静态

 

  1. static int abs(int i)获取参数的绝对值

  正数的绝对值就是它本事,0的绝对值就是0,负数绝对值是,它对应的正数

  -5 5  5 5  0 0

 

  2. static double ceil(double d)获取大于或者等于该参数的最小整数



 3. static double floor(double d)获取小于或者等于该参数的最大整数



 4. static double pow(double x,double y)幂运算,返回x的y次幂



 5. static double sqrt(double x)开方运算,平方根



 6. static double round(double d)四舍五入,取整数部分



9 Random类

生产随机数,简单方便
java.util.Random
 
1.构造方法
     空参数的,直接new对象
 
2.生成随机数的方法
     int nextInt(int n)
获取随机数,0-n之间的整数
     包括0,但是不包括n
     伪随机,就是随机数是假的,不是真的
     随机数是根据JVM底层的算法,计算出来的,有一定规律的
        3.
程序演示:获取10个1-100的随机数



10、System类

全部内容都是静态,类名直接调用
 
1. static void arrayCopy复制数组
    Object src,
要复制的数据源数组
     int srcPos,
数据源数组的开始索引
     Object dest,复制后的目的数组
     int destPos,目的数组的开始索引
     int length 
复制几个



2. static void exit(int i)结束JVM运行
    方法参数,一般都写0,非0表示JVM异常退出
    传递参数是0,表示JVM正常退出



3. static void gc()启动垃圾回收器
    清理内存中的对象,面向对象,如果对象没有引用,变成垃圾
    JVM自动清理垃圾
 
4. static Porperties getProperties()
    获取的是操作系统属性
    返回是一个集合
 
5. static long currentTimeMillis()
    返回自1970年1月1日午夜零时,到程序运行的那一刻,所经过的毫秒值
    1000毫秒=1秒



11.大数据运算

 当你计算的数据非常大的时候,超过long的范围,超过double范围
 严格意义,不属于数字的范畴
 
 计算的数据,需要非常精确的结果的时候
 利用天文数据,财务数据 199.91
 
 java.meth包
 BigInteger,计算超级大型的整数
 BigDecimal,计算超级大型的浮点
 超过long的范围,超过double范围,成为BigInteger或者BigDecimal类的对象
 
 1. BigInteger类
 
   构造方法:
     传递数字格式字符串,没有长度限制
 
   加法运算
     两个BigInteger中封装的数据进行加法计算
     add(BigInteger b)
返回值也是BigInteger
 
   减法运算
     两个BigInteger中封装的数据进行减法计算
     subtract(BigInteger b)
 
   乘法运算
     两个BigInteger中封装的数据进行乘法计算
     multiply(BigInteger b)
 
   除法运算
     两个BigInteger中封装的数据进行乘法计算
     divide(BigInteger b)
  2. BigDecimal类
    进行高精度的浮点计算
 
     构造方法:
       BigDecimal(String s)数字格式的字符串,可以是浮点
 
     加法,减法,乘法,和BigInteger完全一样
 
 
     除法计算
       devide(BigDecimal b)浮点计算,除法,是必须有结果的,保证精确
 
        divide(BigDecimal divisor, int scale, int roundingMode)

        int scale
保留几位
        int roundingMode
如何舍取

12.日期对象

 Java中万物皆对象,一切都是对象
 时间和日期也是对象,有了描述日期和时间对象的描述类
 java.util.Date类
   
  1.
构造方法
     空参数
Date()
     传递long类型参数
Date(long l)
     在时间和日期的概念中,long参数都表示毫秒值



  2.
 long getTime()
     返回Date日期,对应的毫秒值
 
  3.
 void setTime(long l)
     将日期设置到指定毫秒值上
 
     Date类实现一个功能,就是日期对象和毫秒值的相互转换,非常重要
 
     日期对象Date如何转成毫秒
       getTime()方法
                
System.currentTimeMiliis()
 
     毫秒值如何转成日期对象
       setTime()方法
                
Date类的构造方法

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: