[转]CoreJava第七章:常用类

1. 基本数据类型的包装类:为了方便以对象方式操作基本类型的数据,Java SE API中提供了针对8种基本数据类型的包装类
   byte    --> java.lang.Byte
   short   --> java.lang.Short
   int     --> java.lang.Integer
   long    --> java.lang.Long
   float   --> java.lang.Float
   double  --> java.lang.Double
   boolean --> java.lang.Boolean
   char    --> java.lang.Character
   掌握各种基本类型的数据与对应包装类对象,与字符串之间的相互转换

 

2. 自动装箱和自动拆箱:Java SE 5.0以上版本提供的新功能
  基本类型的数据可以直接当作对应的包装类对象使用
  包装类对象可以直接当作对应的基本类型的数据使用
  建议谨慎使用。
 
3. java.lang.String类:不可变的字符序列。
   1) 创建方式:String str = "xxxx";
             String str2 = new String("sdfasd");
   2) 字符串连接:用+号做字符串的连接操作。
   3) 获取字符串的长度:pubic int length()方法
   4) 字符串比较:
        ==                比较两个字符串变量是否引用自同一个对象
       boolean equals(Object obj) 比较内容,最安全的。
       boolean euqalsIgnoreCase(String str);
       int compareTo(String str) 字典顺序比较
       boolean startsWith(String str);
       boolean endsWith(String str);
   5) 搜索相关:
       int indexOf(int ch);
       int indexOf(String key);
       int indexOf(int ch, int start);
       int indexOf(String key, int start);
       int lastIndexOf(int ch);
       int lastIndexOf(String key);
       int lastIndexOf(int ch, int start);
       int lastIndexOf(String key, int start);
      
    6) 截取子串:
       char charAt(int i);
       String substring(int start);
       String substring(int start, int end); 不包括end位置
       String concat(String str);  相当于+, 不建议使用
       String replace(char oldChar, char newChar); 把旧字符替换成新字符
       String trim(); 去除前后空格
      
    7) 更改大小写
       String toUpperCase();
       String toLowerCase();

    8) 把字符串解析成基本类型的数据:对应包装类的静态方法parseXxx();
       例如:int i = Integer.parseInt("1234");
             Integer integer = Integer.valueOf("1234");
   
4. 正则表达式:就是一种字符串匹配模式。
   1) 做字符串的查找、替换等。
   2) 正则表达式是一个字符串表达式,其中包括普通字符和特殊字符(元字符)
   3) 元字符:
      a) 限定符:* 0~n次、+ 1~n次、? 0~1次、{n} 指定次数、{n,} 至少n次、{n,m} n~m次
      b) 选择匹配符:a|b
      c) 特殊字符:普通字符可以使用ASCII或Unicode符表示
         Unicode码:中文范围[/u4e00-/u9fa5]
         元字符要用/来进行转译。
      d) 字符匹配符:匹配指定集合中的任意一个字符
         [abc]:abc中的任意一个字符
         [^abc]:非abc中的任意一个字符
         [a-z]:a到z之间的任意一个字符。[0-9]
         [^a-z]:非a到z之间的任意一个字符
         . :除/n之外的任意一个字符
         /d:任何一个0-9的数字
         /D:任何一个非数字
         /w:任何一个英文字符。等效于[a-zA-Z0-9_]
         /W:任何一个非英文字符。等效于[^a-zA-Z0-9_]
         /s:匹配空白字符。
         /S:匹配非空白字符。
      e) 定位符:
         ^:匹配开始
         $:匹配结束
         /b:匹配单词边界
         /B:非边界
      f) ()用来对正则表达式进行分组。可重用。用“/组编号”来引用。
         还可以“$组编号”来获取指定分组所匹配到的字符串。
   4) 贪心匹配,默认情况的元字符都是尽量多的匹配字符串。可以在元字符后面跟上?来表示最少匹配(非贪心匹配)。

 

5. Java对正则表达式的支持:jdk1.4开始提供了java.util.regex包来支持正则表达式的操作。
   1) Pattern:正则表达式的编译器,把正则表达式编译成Pattern实例。
      a) public static Pattern compile(String regex):编译指定的正则表达式返回一个Pattern实例。
      b) public static boolean matches(String regex, CharSequence input): 编译给定正则表达式并尝试将给定输入与其匹配。适合只使用一次的情况。
      c) public Matcher matcher(CharSequence input):创建匹配给定输入与此模式的匹配器。
     
   2) Matcher:正则表达式的匹配器,通过匹配器把编译器编译好的正则表达式与指定的字符串进行匹配。
      a) public boolean find(): 尝试查找与该模式匹配的输入序列的下一个子序列。
      b) public String group():返回由以前匹配操作所匹配的输入子序列。
      c) public String group(int group):返回在以前匹配操作期间由给定组捕获的输入子序列。
     
      d) public String replaceAll(String replacement): 替换模式与给定替换字符串相匹配的输入序列的每个子序列
      e) public boolean matches():尝试将整个区域与模式匹配。用得不多。
   3) 使用方式:
      a) boolean flag = Pattern.matches("正则表达式", "源字符串");
      b) Pattern pattern = Pattern.compile("正则表达式");
         Matcher matcher = pattern.matcher("源字符串");
         while(matcher.find()){
            String str = matcher.group();
         }
   4) String类与正则表达式相关的方法:
     a) public boolean matches(String regex): 告知此字符串是否匹配给定的正则表达式。
     b) public String replaceAll(String regex, String replacement): 使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
     c) public String[] split(String regex) 根据给定正则表达式的匹配拆分此字符串。

5. StringBuilder和StringBuffer类:当需要频繁修改字符串的内容时建议使用。
  1) 用于高效的更改字符串的内容。
  2) 常用的方法:
     public StringBuilder append(String str);  //方法链的调用方式
     public String toString();
  3) StringBuilder和StringBuffer类提供的方法完全一样,只是StringBuilder是线程不安全的。StringBuffer是线程安全的。在非多线程环境下,使用StringBuilder类效率更高。

 

6. java.lang.Math类,它提供数字中的常用运算方法,全部是静态的。

 

7. 静态导入:jdk5.0以上版本,可以使用 import static 包名.类名.*; 把指定类中的所有静态成员导入到当前类中。当前类就可以直接访问。不需要通过类名了。

 

8. java.util.Random类,随机数工具类。
   1) 构造方法:Random();
   2) 常用方法:public int nextInt(int max); //产生[0,max)之间的一个随机整数

 

9. 日期和时间类
  1) System类currentMillis(); 获取系统当前时间的毫秒值.(从1970-01-01 00:00:00开始的)
  2) java.util.Date类。对国际化的支持不太好,大部分方法已过时。但格式化类却使用它。
  3) java.util.Calendar类。日历类,它提供了丰富的方法,用来操作日历的指定字段。
     a) 日历字段:YEAR 年; MONTH 月; DAY_OF_MONTH 日; HOUR MINUTE SECOND
     b) 更改或获取日历字段值的方法:
        void set(int field, int value);
        void add(int field, int value);
        int get(int field);
     c) 和Date实例之间的转换
        //c -> d
        Date getTime();
        //d --> c
        Calendar c = Calendar.getInstance();
        c.setTime(date);
       
10. SimpleDateFormat类。使用指定的模式串完成Date--> String和String --> Date的操作。
    1) 模式字母:y,M,d,H,m,s
    2) String format(Date date);
    3) Date parse(String str) throws ParseException;
   
11. DecimalFormat类。使用指定的模式串完成数值的格式化工作。
    1) 模式字符:0 , # . % ¤ -
    2) String format(double d);
   
12. MessageFormat类。对指定的字符串中的点位符进行替换。
    1) 点位符的形式: {编号} 。编号从0开始
    2) String format(String 要格式化的字符串, Object... params);
   
13. java.lang.System类。

 

14. java.lang.Runtime类。

posted @ 2012-06-27 13:59  琥珀光  阅读(109)  评论(0编辑  收藏  举报