常用类

常用类

  字符串(看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());

 
原文地址:https://www.cnblogs.com/scxu28/p/6158287.html