線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1622
推到 Plurk!
推到 Facebook!

型態檢查

尚未結案
hkstm
一般會員


發表:23
回覆:31
積分:10
註冊:2002-03-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-13 13:39:10 IP:203.204.xxx.xxx 未訂閱
請問一下,假如這個變數是字串或是數字等形式型態等等… 我如何檢查型態是否相符? 比如說 String str = "字串"; if (str == String)... 當然這是錯誤的…想問的是如何用程式碼來檢查型態是否符合,謝謝。
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-13 20:23:37 IP:61.230.xxx.xxx 未訂閱
轉錄自java連線版    發信人: TAHO, 看板: java 精華區 標 題: String與基本資料型態(int byte...等)之間的轉換 發信站: 140.126.22.6 竹師風之坊 Origin: Local    1. 由 基本資料型態轉換成 String    String 類別中已經提供了將基本資料型態轉換成 String 的 static 方法 也就是 String.valueOf() 這個參數多載的方法    有下列幾種    String.valueOf(boolean b) : 將 boolean 變數 b 轉換成字串    String.valueOf(char c) : 將 char 變數 c 轉換成字串    String.valueOf(char[] data) : 將 char 陣列 data 轉換成字串    String.valueOf(char[] data, int offset, int count) : 將 char 陣列 data 中 由 data[offset] 開始取 count 個元素 轉換成字串    String.valueOf(double d) : 將 double 變數 d 轉換成字串    String.valueOf(float f) : 將 float 變數 f 轉換成字串    String.valueOf(int i) : 將 int 變數 i 轉換成字串    String.valueOf(long l) : 將 long 變數 l 轉換成字串    String.valueOf(Object obj) : 將 obj 物件轉換成 字串, 等於 obj.toString()    用法如: int i = 10; String str = String.valueOf(i); 這時候 str 就會是 "10"    2. 由 String 轉換成 數字的基本資料型態    要將 String 轉換成基本資料型態轉 大多需要使用基本資料型態的包裝類別    比如說 String 轉換成 byte 可以使用 Byte.parseByte(String s) 這一類的方法如果無法將 s 分析 則會丟出 NumberFormatException    byte : Byte.parseByte(String s) : 將 s 轉換成 byte Byte.parseByte(String s, int radix) : 以 radix 為基底 將 s 轉換為 byte 比如說 Byte.parseByte("11", 16) 會得到 17    double : Double.parseDouble(String s) : 將 s 轉換成 double    float : Double.parseFloat(String s) : 將 s 轉換成 float    int : Integer.parseInt(String s) : 將 s 轉換成 int    long : Long.parseLong(String s) : 將 s 轉換成 long    用法如:    
 try{  
     String str = "1234";  
     int a = Integer.parseInt(str);
    }
  catch (NumberFormatException e){  
     System.out.println(" parse int error!!  "   e);
    }
~悠遊法國號~
ramb
一般會員


發表:1
回覆:4
積分:1
註冊:2004-04-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-14 09:09:48 IP:61.222.xxx.xxx 未訂閱
我想 , 他問的問題應該是比對型態而不是型態轉換吧. (應該沒有理解錯的話) 附個範例:
public class Class {
   
    public Class() {
        String str="test";
        if(str.getClass()==String.class)
            System.out.println("ok");
    }
    
    public static void main(String[] argc){
        new Class();
    }
}
發表人 - ramb 於 2004/04/14 09:13:15
hkstm
一般會員


發表:23
回覆:31
積分:10
註冊:2002-03-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-14 19:07:42 IP:203.204.xxx.xxx 未訂閱
後來發覺用instanceof保留字更快… 物件 instanceof 類別型態 若為是傳為true 否則false
ramb
一般會員


發表:1
回覆:4
積分:1
註冊:2004-04-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-15 12:32:20 IP:61.222.xxx.xxx 未訂閱
instanceof 跟 getClass == 比對不太一樣喔. 參考
public class Test {    
    public static void main(String[] argc){
        child robin = new child();
        System.out.println( (robin instanceof father) );
        System.out.println( (robin.getClass()==father.class) );
    }
}    class father{}    class child extends father{}
instanceof 是會去看能不能轉型成某物件. 當然騰一個型態的物件一定回傳 true. 如果像上面你把 child instanceof father. 雖然型態不一樣, 但是因為繼承的關係 所以還是回傳 true. 另外, 這兩個方法執行效率不一樣. instanceof 會比較慢.
系統時間:2024-05-09 10:26:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!