2006年12月10日 星期日

型態與物件

物件的概念
設定一個物件 String name2= new String("Simon");
型態 名稱 物件

為什麼 String 和以前的「基本資料型態」不同?
1. 物件是否 "相等"?
String name = new String("Simon");
String name2 = new String("Simon");
System.out.println( name == name2);
答案是 false (布林值為否),也就是 name 和 name2 是不一樣的。物件 name = new String("Simon") 會在記憶體中有自己的編號,並與 name 變數名稱為參照;同樣的,name2 = new String("Simon") 會在記憶體中有自己的編號,並與 name2 變數名稱為參照。因此兩者是不同的。其中,name 是該物件的參考變數。

2. 一個字串的內容提供了許多 "方法" 來產生功能
例如:
String name= new String("Simon");
String upper = name.toUpperCase(); //呼叫字串的方法
System.out.println (upper); //結果會印出 SIMON
有些人也將 "方法",稱為函式。真是太方便了!如果我們使用 lenght() 這種方法,就可以算出該字串的長度、使用 charAt() 這種方法,取得其中的某個字元
System.out.println (name.length()); //結果會印出 5
System.out.println (name.charAt(2)); //結果會印出 m
搭配使用可以寫出
//用一個迴圈印出名字
for (int c=0; c<=name.length()-1;c++ ) {
System.out.println (name.charAt(c));
}
檢查網址是否為 .tw,檢查某段字串的索引位置
//檢查網址
//了解 boolean startsWith(String s) 的用法
String url= new String("http://tw.yahoo.com");
System.out.println( url.startsWith("http://"));
System.out.println( url.endsWith(".tw"));
System.out.println( url.indexOf("yahoo"));
//結果會傳回 10 (在第11字元的位置)
比較兩個物件
String name = new String("Simon");
String name2 = new String("simon");
System.out.println( name2.equals(name));
//比較字串,結果 false
System.out.println( name2.equalsIgnoreCase(name));
//比較字串但不分大小寫,結果 true

取得某部份的字串
String url= new String("http://tw.yahoo.com");
System.out.println( url.substring(10,15));
//可以顯示出 yahoo
String addr= new String("台北市大安區…");
int p = addr.indexOf("區");
if (p != -1 ) {
System.out.println( addr.substring( p-2, p-2+3) ) ;
}
else {
System.out.println( "沒有區的資料" );
}
//找到區的位置
//顯示台北市的區別或沒有區的資料

沒有留言: