Object,String,StringBuffer,StringBuilder,System,Runtime,Date,Math介紹及用法(API)

來源:互聯網
上載者:User

標籤:tpm   cm5   regex   tsp   kvc   bdr   cWeb   cuug   sso   

1       Object對象

物件導向的核心思想:“找合適的對象,做適合的事情”。

合適的對象:

  1. 自己描述類,自己建立對象。
  2. sun已經描述了好多常用的類,可以使用這些類建立對象。

API(Application Program Interface)

       sun定義的那麼多類的終極父類是Object。Object描述的是所有類的通用屬性與方法。

1.1   toString方法

   

toString() 返回對象的描述資訊   [email protected]   類名@雜湊碼值的十六進位形式。

直接輸入一個對象的時候,會調用對象的toString方法。

練習:自訂一個Person類,列印該對象的描述資訊,要求描述資訊為:姓名 — 年齡

 

問題:調用p的toString方法時,列印出來的資訊是類名+記憶體位址值。不符合要求。根據我們之前學的繼承,假如父類的指定的功能不能滿足要求,那麼子類可以複寫父類的功能函數。那麼該對象再調用toString()方法時,則會調用子類複寫的toString方法。

 

編程習慣:開發人員要對自訂的類重寫toString(),對對象做詳細的說明

 

 

1.2   equals方法

equals()  返回的是比較的結果  如果相等返回true,否則false,比較的是對象的記憶體位址值。

 

 

 

問題:比較兩個人是否是同一個人,根據兩個人的名字判斷。

 

問題:如果根據名字去作為判斷兩個人是否是同一個時,明顯p與p1是同一個人,但是程式輸入卻不是同一個人。不符合我們現實生活的要求。

 

 

解決: 根據我們學的繼承中的函數複寫,如果父類的函數不能滿足我們目前的要求,那麼就可以在子類把該功能複寫,達到複合我們的要求。

 

編程習慣:開發人員要對自訂的類重寫equals(),使得比較兩個對象的時候比較對象的屬性是否相等,而不是記憶體位址。

1.3   hashCode方法

hashCode() 返回該對象的雜湊碼值: 採用作業系統底層實現的雜湊演算法。 同一個對象的雜湊碼值是唯一的。

java規定如果兩個對象equals返回true,那麼這兩個對象的hashCode碼必須一致。

 

2       String類

String類描述的是文本字串序列。  留言   QQ   寫日誌。

建立String類的對象的兩種方式:

  1. ""直接賦值法
  2. new關鍵字法
2.1   字串對象的比較

 

String Str = “jack”這個語句會先檢查字串常量池是否存放這個”jack1”這個字串對象,如果沒有存在,那麼就會在字串常量池中建立這個字串對象,如果存在直接返回該字串的記憶體位址值。

String str3 = new String(“jack”) 該語句會建立兩個對象,首先會先檢查字串常量池中存不存在jack這個字串對象,如果不存在就會建立,如果存在就返回記憶體位址值。建立了出來之後,new String這個語句就會在堆記憶體中開闢一個字串對象。總共兩個對象。

 

 

 

2.2   擷取方法
int length()  擷取字串的長度char charAt(int index) 擷取特定位置的字元 (角標越界)int indexOf(String str) 擷取特定字元的位置(overload)int lastIndexOf(int ch) 擷取最後一個字元的位置

 

 

 

2.3   判斷方法
boolean endsWith(String str) 是否以指定字元結束boolean isEmpty()是否長度為0 如:“” null V1.6Boolean contains(CharSequences) 是否包含指定序列 應用:搜尋Boolean equals(Object anObject) 是否相等Boolean equalsIgnoreCase(String anotherString) 忽略大小寫是否相等

 

 

2.4   轉換方法
String(char[] value) 將字元數群組轉換為字串String(char[] value, int offset, int count)Static String valueOf(char[] data)static String valueOf(char[] data, int offset, int count)char[] toCharArray()  將字串轉換為字元數組

 

 

 

2.5   其他方法
String replace(char oldChar, char newChar) 替換String[] split(String regex) 切割String substring(int beginIndex)String substring(int beginIndex, int endIndex)截取字串String toUpperCase() 轉大寫String toLowerCase() 轉小寫String trim() 去除空格

 

2.6   練習
  1. 去除字串兩邊空格的函數。
public class Demo1 {// 定義一個祛除字串兩邊空格的函數public static String trim( String str ){     // 0、定義求字串需要的起始索引變數   int start = 0;   int end = str.length()-1;   // 1. for迴圈遍曆字串對象的每一個字元   for (int i = 0; i<str.length() ; i++ )   {        if ( str.charAt(i) == ‘ ‘ )        {             start++;        }else{                  break;       }   }   System.out.println( start );   for (; end<str.length() && end >= 0;  )   {        if ( str.charAt(end) == ‘ ‘ )        {             end--;        }else{            break;       }   }   System.out.println( end );   // 2. 求子串   if( start < end ){         return str.substring( start , (end+1) );   }else{         return "_";   }

 

2.擷取上傳檔案名稱  "D:\\20120512\\day12\\Demo1.java"。

public static String getFileName2( String path ){

      return path.substring( path.lastIndexOf("\\") + 1 )

 

 

 

3.將字串對象中儲存的字元反序。

// 將字串對象中儲存的字元反序    public static String reaverseString( String src ){           // 1. 將字串轉換為字元數組       char chs[] = src.toCharArray();       // 2. 迴圈交換       for ( int start = 0 , end = chs.length - 1; start < end ; start++,end-- )       {           // 3. 資料交換           char temp = chs[end];           chs[end] = chs[start];           chs[start] = temp;       }      // 4. 將字元數群組轉換為字串       return new String( chs );    }

 

4. 求一個子串在整串中出現的次數

 

public static int getCount( String src , String tag ){       // 0. 定義索引變數和統計個數的變數      int index = 0;      int count = 0;             // 1. 寫迴圈判斷      while ( ( index = src.indexOf(tag) ) != -1 )   // jackjava      {       // 2. 求字串         System.out.println( src );         src = src.substring( index + tag.length() );   // index 4 + 4 = 8      System.out.print( src.length() + " : " + index + " :  " + tag.length() );               // 3. 累加         count++;           }           return count;        }

 

3       StringBuffer

 

StringBuffer : 由於String是不可變的,所以導致String對象泛濫,在頻繁改變字串對象的應用中,需要使用可變的字串緩衝區類。

特點:

  1. 預設緩衝區的容量是16。
  2. StringBuffer  : 安全執行緒的所有的緩衝區操作方法都是同步的。效率很低。
3.1   添加方法

StringBuffer("jack")     在建立對象的時候賦值

append()              在緩衝區的尾部添加新的文字物件

insert()                在指定的下標位置添加新的文字物件

   

StringBuffer sb = new StringBuffer("jack");

sb.append(true);

sb.append(‘a‘);

sb.append(97).append(34.0).append(new char[]{‘o‘,‘o‘});   // 鏈式編程

System.out.println( sb.toString() );          // 輸出緩衝區的中文本資料

sb = new StringBuffer("jack");

sb.insert( 2, "java" );                       // jajavack

System.out.println( sb.toString() ); 

3.2   查看

toString() 返回這個容器的字串

indexOf(String str) 返回第一次出現的指定子字串在該字串中的索引。

substring(int start) 從開始的位置開始截取字串

 

 

3.3   修改(U)

replace(int start int endString str)  使用給定 String 中的字元替換此序列的子字串中的字元。該子字串從指定的 start 處開始,一直到索引 end - 1 處的字元

setCharAt(int index char ch)  指定索引位置替換一個字元

 

 

3.4   刪除(D)

 

 

 

3.5   反序

reverse() 把字串反序輸出。

 

 

4       StringBuilder

StringBuilder 是JDK1.5之後提出的,線程不安全,但是效率要高。用法與StringBuffer類似。

5       System

System 可以擷取系統的屬性。

 

6       Runtime

Runtime  類主要描述的是應用程式啟動並執行環境。

 

 

 

7       Date

Date 類封裝的是系統的目前時間.。但是Date已經過時了,sun推薦使用Calendar類。

Calendar: 該類是一個日曆的類,封裝了年月日時分秒時區。

 

 

 

日期格式化類:SimpleDateFormat

 

8       Math

Math:類封裝了很多數學的功能。

 

 

 

 

練習:產生一個隨機碼

 

Object,String,StringBuffer,StringBuilder,System,Runtime,Date,Math介紹及用法(API)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.