1. 程式人生 > >實用類(Math,String及Date,Calendar)

實用類(Math,String及Date,Calendar)

部分 lan -- toupper value 找不到 一個 random ring

Java API:Java Application Programming Interface 即Java應用程序編程接口
java.lang:編寫Java程序時最廣泛使用的包,自動導入到所有的程序中,包含了Java程序的基礎類和接口.
java.util:包含了系統輔助類,特別是Collection.List和Map等集合類
java.io:包含了與輸入/輸出有關的類,如文件操作等類
java.net:包含了與網絡有關的類,如Socket
java.sql:包含了與數據庫相關的類

包裝類的特點:
  1,所有包裝類都是final類型,不能創建它們的子類
  2,JDK1.5後,允許基本數據類型和包裝類型進行混合數學運算
  3,包裝類並不是用來取代基本數據類型的
    在基本數據類型需要用對象表示時使用


==>java.lang包
Math類
  Math 類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
  常用的數學運算方法和兩個靜態常量E(自然對數的底數)和PI(圓周率)
  Math.abs(-3.5);//絕對值
  Math.max(2.5,56.6);
  int random = (int) (Math.random()*10);//生成0-9之間的隨機數
    random(): 0(包括)-1(不包括)之間的隨機浮點數
  ==>另一種方法:java.util.Random
  Random random = new Random(種子);
  Random random1 = new Random(100);
  Random random2 = new Random(100);
  ==>random1.nextInt() == random2.nextInt()
  用同一個種子值來初始化兩個Random對象,然後用每個對象調用相同的方法,得到的隨機數也是相同的.
String類
  (1)length():長度 方法
    對比:數組.length 屬性
  (2)equals():比較存儲對象的字符串內容是否相同(String類型重寫後判斷內容是否相等)
    equalsIgnoreCase():忽略大小寫
    toLowerCase():轉換為小寫
    toUpperCase():轉換為大寫
    equals() 和 "==" 區別:
      ==

         既可以比較基本數據類型,也可以比較引用數據類型,比較基本數據類型比的是值,比較引用數據類型比的是地址值
      equals
         只能比較引用數據類型,方法被重寫之前和==的意義是一樣的,比的是地址值,重寫之後按照重寫的規則
  (String類對equals()方法進行了重寫,只比較字符內容是否相同)
  

  String s1 = "java";
  String s2 = "java"; //字符串池,s1 s2 是同一個對象
  String s3 = new String("java"); //堆,新的內存地址,新的對象(字符串池如沒有,也會放一個對象)
  s1==s2 //true   s1==s3 //false   s1.equals(s3) //true

  (3)字符串的連接
    ①"+"
    ②concat()

    註意:字符串方法操作(變大寫,小寫,連接,截取...)的變化都作用於字符串的副本,而不是本身(需接收)
  (4)字符串提取方法
    public int indexOf(int ch) ch第一次出現的位置,從0開始找,找不到返回-1
    public int indexOf(String value) 字符串第一次出現的位置

    public int lastIndexOf(int ch)
    public int lastIndexOf(String value)

    public String substring(int index)

    public String substring(int beginindex,int endindex) 包含起始位置,不包含結束位置

    public String trim() 返回去掉前後空格字符串的副本

  (5)split():字符串拆分,返回字符串數組

  (6)endsWith();是否以指定字符串結尾
   startsWith();
StringBuffer類:操作字符串
  對字符本身修改,操作效率更高
  StringBuffer sBuffer = new StringBuffer("北大青鳥");
  toString(): StringBuffer-->String
  方法:
    append():追加
    insert(位置,參數):某個位置插入,參數可以是包括String的任何數據類型

    String是不可變對象(操作的是副本)
    StringBuffer是可變的字符串
    StringBuild

  註意:String類的concat()方法只能將String類型的字符串追加到一個字符串後面
    StringBuffer類可以將任何類型的值追加到字符串後面

String類,StringBuffer類及StringBuilder類對比
  1,String:字符串常量
    String類是不可變的對象,在每次對String類型進行改變的時候其實都等同於生成了一個新的String對象,然後指向新的String對象,
      所以經常改變內容的字符串最好不要用String類型,因為每次生成對象都會對系統性能產生影響.
  2,StringBuffer:字符串變量
    StringBuffer是可變的字符串,在每次對StringBuffer對象進行改變時,會對StringBuffer對象本身進行操作,而不是生成新的對象,
       再改變對象引用.所以,在字符串對象經常改變的情況下推薦使用StringFuffer類
  3,SStringBuilder:字符串變量
    和StringBuffer等價,區別在於StringBuffer類是線程安全的,StringBuilder類是單線程的,不提供同步,理論上效率更高.

-==>java.util包
格式化是指日期轉換為文本,解析是指文本轉換為日期格式Date類 java.util.Date;

//java.text.SimpleDateFormat
  格式化輸出日期
 

    Date date = new Date();
  System.out.println(date);
  SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  String dString = format.format(date);
  System.out.println(dString);    

Calendar類:操作日期時間
  抽象類,java.util.Calendar
  用於設置和獲取日期/時間數據的特定部分
  Calendar類提供一些方法和靜態字段來操作日歷
  方法 說明
  int get(int field) 返回給定日歷字段的值
  MONTH 指示月
  DAY_OF_MONTH 指示一個月中某天
  DAY_OF_WEEK 指示一個星期中的某天

  Calendar calendar = Calendar.getInstance();
  calendar.get(Calendar.YEAR) //返回年
  calendar.get(Calendar.MONTH)+1 //返回月
  calendar.get(Calendar.DAY_OF_MONTH) //返回天
  calendar.get(Calendar.DAY_OF_WEEK)-1 //返回星期

  System.currentTimeMillis 當前毫秒時間

 1 GregorianCalendar 是 Calendar 的一個具體子類,提供了世界上大多數國家/地區使用的標準日歷系統。
 2 boolean  isLeapYear(int year) 確定給定的年份是否為閏年。
 3 
 4     GregorianCalendar gcalendar = new GregorianCalendar();
 5     Calendar c = Calendar.getInstance();
 6     boolean flag = gcalendar.isLeapYear(c.get(Calendar.YEAR));
 7     if (flag){
 8         System.out.println(c.get(Calendar.YEAR) + "是閏年");
 9     } else {
10         System.out.println(c.get(Calendar.YEAR) + "不是閏年");
11     }
12 
13 ===> gcalendar.isLeapYear(2012); -->可直接傳入年份

實用類(Math,String及Date,Calendar)