zoukankan      html  css  js  c++  java
  • 常用类

    常用类

      字符串(看API DOC)  包装类(查API)  时间日期类  属性文件类

        System  Runtime  Math→Math.ramdom();

      字符串:string:(1 特点;(2 方法

          针对String的补充:stringBuffer、stringBuild  

      字符串的重要性:是所有程序员使用的最多的一种数据类型,在java中使用String表示字符串,固此java堆String有很多特殊处理;

        String str = "hello"    //String是唯一一个可以用常量赋值的引用数据类型;
        String str = new String "hello"  
                                 //String的常量也是一个对象;java堆String常量会在加载期进行预加载,产生到数据段的字符串常量池当中,运行时如果用到某个String常量,只需要从常量池取出即可;
        System.out.println str ==str0;    //Str和Str0都指向常量池当中的那个"hello"常量
            //String拥有一个特殊点:叫String对象内容不可变;
            //导致String在做字符串拼接的时候,会有比较大的消耗,而StringBuffer和StringBuild就是用来解决String内容不可变这个问题的;
        str = "world" + args[0] + "hello" + str1;
        System.out.println ( str0 ) ;
    

        java当中专门用重载“+”号操作符,用来实现字符拼接;

        在java当中也针对String设计了大量的操作方法;

          1、String跟数组相关的方法:

            System.out.println ( str.length );
    
            char  [ ] array = str.tocharArray( );  //根据下标获取字符出现的位置;
            System.out.println ( str.indexof '|' ); //返回字符在String中首次出现的位置,如果没有返回-1;
            System.out.println ( str.lasIndexof '|' ); //返回字符在String中最后出现的位置;
    

          2、String中跟字母有关的方法:

            String str3 = str0.touppercase( );  //转全大写;
            String str3 = str0.tolowercase( );  //转全小写;
    

                   "yes".equals Ignore case "yes"   忽略大小写比较相等

                   "yes".compareTo ("no")  比大小  (字典顺序比较)

                      compare To Ignprecase;  忽略大小写,比较字典顺序

          3、与内容操作相关的:

            String str2 = str.srplace ('a','A');
            String str2 = str.srplace ('||',' ');  //替换
            System.out.println ( str.endswith ('lo') );  //判断字符串以什么结尾;
            System.out.println ( str.endswith ('h') );  //判断字符串以什么开头;
            String str4 = str.substring (0,3 );  根据下标位置截取字符串 [开始位置,结束位置) 前后开闭
            System.out.println ( str4 );
    
            String str6 = str.concatc "world";  //字符串连接;
            System.out.println ( str6.containg ("low") );  //判断一个字符串是否是另一个字符串的子串;
    

          4、最重要的三个方法:

           1)trim( )——去掉字符串前后的空格;

              Sstring input = " hello world ";

             只要接受外部输入的字符串,就应该默认调用一次trim( )去掉字符串前后吴孝的空格,在进行后续操作,养成习惯;

            2)split( )——根据制定的分隔符做字符串拆分;

              String birthday = "1992-2-14";
              String [] values = birthday.split("—");
                System.out.println ( calues[0] );
    

            3)matcher( )——正则表达式效验:又叫:regex;

                      字符串内容的匹配模板

                     特点:正则表达式本身就是一个字符串;

          String regex = "hello";  "8320[0-9]{4}";  "8320([0-9]{4}|110|120|114)";

            String in = new Scanner (System.in).next();
              if ( in.matcher ( regex ) ) {
                System.out.println ("匹配");
              } else {
                System.out.println ("NO");
              }
    

          符号: [ ] 一个方括号代表一个字符,在内写入内容表达可选则符号;

              { }用来代表正则表达式出现的次数:{m,n}(m表示至少,n表示最多)、{m,  }(m表示至少一次,至少)、{m}(m表示只能);

            :? 表示前面规则出现 0到1次;  + 表示1到多次;  * 表示0到多次;  (|) 表示分组,|两边任选其一,位数不限;例:(00|0000|000|)

    小结:

      String: 内容不可变,方法必须熟悉;

      StringBuffer/StringBuildr:内容可变;

    StringBuffer

      StringBuffer类是一个全新类型,与String没有继承关系;

      StringBuffer的出现是为了解决String内容不可变的问题,StringBuffer是可变的;

      StringBuffer不享受String的特殊语法(+号拼接、自解赋值String常量);

      StringBuffer的方法完全没有String丰富,大部分方法都是和拼接或删除有关,需要传入位置下标;

    public static main ( String [ ] args ) {
        StringBuffer sb =new StringBuffer( "hello" );
        StringBuffer sb2 = sb.append ( "world");  //StringBuffer字符串末尾做拼接
        sb2 = sb2.insert( 5, " ");  //StringBuffer在字符串任意位置做拼接, 5 表示位数
        System.out.println(sb2);
    

      

    StringBuilder

      StringBuilder类是一个全新类型,与String没有继承关系;

      StringBuilder的出现是为了解决String内容不可变的问题,StringBuilder是可变的;

      StringBuilder不享受String的特殊语法(+号拼接、自解赋值String常量);

      StringBuilder的方法完全没有String丰富,大部分方法都是和拼接或删除有关,需要传入位置下标;

         StringBuilder sb0 = new StringBuilder("ByeBye");
       StringBuffer sb1 = sb.append("world");    //StringBuffer在字符串末尾做拼接
       b1 = sb1.insert(5, " ");    //StringBuffer在字符串任意位置做拼接
       System.out.println(sb1); 
    

      

      StringBuffer与StringBuilder的区别

      先有StringBuffer,后有StringBuilder;

      StringBuffer线程安全,性能低;

      StringBuilder线程单一并且不安全,性能高;

        凡是线程安全的、性能低;线程不安全的、性能高;

    包装类:

      8个包装类各自对应基本数据类型:

    包装类 基本数据类型
    Integer int
    Character char
    Byte byte
    Short short
    Boolean boolean
    Long long
    Float float
    Double bouble

      包装类的作用:

       1、丰富了基本数据类型只能存放值的问题,还可以提供大量的方法或常量;

       2、包装类充当了基本数据类型和引用数据类型的桥梁;

      应用层面:必须掌握基本数据类、包装类型和String类型三者的任意转换;

      1:基本和包装类之间的转换:

       1-1、基本转包装:

    public static void main (String [ ] args ) {
        int a = 100;
        Integer in = new Integer (a);    //标准做法
        in = 25;    //自动封箱———JDK1.5以后提供
    

       1-2、包装转基本:

      Integer in = 300;
      int b = in.intValue();    //标准做法
      b = in;    //自动拆箱———JDK1.5以后提供
    

      

      2:包装和String之间转换:

       2-1、String转包装:

      String str = "125";
      Integer in = new Integer(str);
    

       2-2、包装转String: 

    Integer in = 325;
    String str = in.toString();    //标准做法
    String str1 = in + "";    //其实本质还是在调用in的toString方法

      

      3:String和基本类型之间的转换:

       3-1、String转基本:

      String str = "275";
      int i = Integer.parseInt(str);    //将字符串String转换为基本数据类型
    

       3-2、基本转String

      int i = 78;
      String str = Integer.toString(i);
      String str1 = i + ""
      System.out.println(str);
    

      

    时间和日期类:

      定义长度:long(长整数)  long time1 = System.currentTimeMillis( ); 从时间原点(1970年1月1日 到现在的毫秒数;)(原时间原点:1900年1月1日)

       API中过时是与时间与日期类有关,与其它类无关;

      可以通过这个方法获得当前时间的毫秒数

      long now1 = System.currentTimeMillis();
      System.out.println(now1);

      Date 类用来封装了时间日期:

       由于Date这个类出现的较早,经历了时间原点的变迁,以及JDK版本的变迁,所以很多的过时方法;

       Date目前的使用场景:1、获取程序运行的当前时间还是用Date最方便;

                  2、SimpleDateFormat类可以自定义格式化输出日期时间字符串;

                  3、Date在各版本中都可以使用,因而称为表示时间日期的首选;

         Date now = new Date();    //获取当前时间的Date对象
            now = new Date(0L);    //根据传入的long类型毫秒数表示时间
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 a hh:mm:ss:SSS  E");
            String msg = sdf.format(now);
            System.out.println(msg);

       Date短处:1、根据制定的年月日时分秒来设置对象的值———方法已经过时;

             2、难于取出时间日期的一部分(比如年、月)进行单独的时间运算;

       解决方案:使用Calengdar这个替代进行操作;

      Calengdar类———日历类

       

         Calendar cal = Calendar.getInstance();//使用设计模式帮助我们直接获取到Calendar的子类对象,里面对应的就是当前日期时间
            int year = 1992;
            int month = 2;
            int date = 14;
            cal.set(year, month - 1, date);
    //             Calendar ---> Date
    //        Date birthday = cal.getTime();
            Date birthday = new Date(cal.getTimeInMillis());
            String dayOfWeek = new SimpleDateFormat("E").format(birthday);
            System.out.println(dayOfWeek);

    Properties

      Properties:集合类;操作文件

        映射结构:键(kay)———值(value)  键值对(kv对)

      Properties是一个集合类,以键值的方式存放数据;同时兼具可以操作属性文件(一种特殊的文本文件);

      首先讨论作为集合类如何用Properties:

            Properties props = new Properties();//首先产生Properties集合容器
            props.setProperty("J134001", "chenGuo");//调用setProperty方法放入元素,每个元素都是一对键值对
            props.setProperty("J134002", "张鹏");//第一个参数是键,要求不能重复
            props.setProperty("J134003", "张凯");//第二个参数是值        
            props.setProperty("J134003", "罗一修");//如果出现放入重复值的情况,相当于修改而不是新增
            
            String name = props.getProperty("J134001");//通过键取集合中的值,如果键不存在则返回null
            System.out.println(name);
            props.remove("J134002");//根据键删除整个键值对
            System.out.println(props.getProperty("J134002"));
            int size = props.size();//获得容器中的元素个数

      接下来讨论Properties如何操作文件:

       Properties操作的文件必须是固定格式的文本文件———属性文件———将是工作中使用率排名第二的配置文件

            //存文件
            try {                
          props.store(newFileOutputStream("file/student.properties"), "");//下划线表示文本文件的存储格式 } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }

          //读文件
          Properties newProps = new Properties();
          try {
          newProps.load(new FileInputStream("file/student.properties"));
          } catch (FileNotFoundException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          }
          System.out.println(newProps.getProperty("J134001"));
          System.out.println(newProps.size());

     
  • 相关阅读:
    Java如何编写自动售票机程序
    install windows service
    redis SERVER INSTALL WINDOWS SERVICE
    上传文件
    This problem will occur when running in 64 bit mode with the 32 bit Oracle client components installed.
    解决Uploadify上传控件加载导致的GET 404 Not Found问题
    OracleServiceORCL服务不见了怎么办
    Access to the temp directory is denied. Identity 'NT AUTHORITYNETWORK SERVICE' under which XmlSerializer is running does not have sufficient permiss
    MSSQL Server 2008 数据库安装失败
    数据库数据导出成XML文件
  • 原文地址:https://www.cnblogs.com/scxu28/p/6158287.html
Copyright © 2011-2022 走看看