大數據分析技術之JAVA基礎(五):異常類與常用類

寫在前面:今天繼續分享JAVA後續的內容,可能最近對於JAVA的更新會更頻繁一點,深度學習那邊感覺數據加載還是有點問題,開始苦惱。在本文的最後附上了最近學習JAVA的參考文獻電子版百度網盤下載地址。

學習內容安排

JAVA基礎課程學習:數據類型(一)、運算符表達式和程序結構控制(二)、面向對象基礎:類與對象和接口(三)、面向對象基礎:繼承抽象多態封裝(四)、異常類和常用實用類(五)、組件和事件處理(六)、IO和JDBC(七)、泛型和集合函數(八)。

五、異常類和常用實用類

1.異常類
今天的重點是講解一下異常類和常用的一些實用類,所謂異常類就是設置一個程序報錯的反饋項,因爲如果沒有這樣一個反饋報錯項的話,程序就會中斷,如果是一個大型項目程序中斷的代價是非常高的,所以需要設置一個異常類進行報錯,下面我們來通過實例來理解一下異常類,異常類就是用try-catch來構造異常捕捉機制。
我們希望輸入一個整數,並輸出,如果輸入的不是一個整數那麼就返回異常捕捉中的語句,
1.1單異常捕捉機制

//單個的異常捕捉機制
package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("[請輸入一個整數]> ");
        int x = 0; //需要在try的外面定義x,try之外的x纔可識別
        try{
            x = in.nextInt();
            System.out.println("您輸入的整數爲=> "+x);
        }catch (Exception e){
            System.out.println("您輸入的不是一個整數!");
        }
    }
}
[請輸入一個整數]> 20
您輸入的整數爲=> 20
[請輸入一個整數]> a
您輸入的不是一個整數!

那麼當我們不再是一個語句的時候作爲新手應該怎麼來設置報錯項,來讓我們知道到底是哪個語句出錯了呢?這裏我們使用的一個叫做判斷語句的方法,判斷語句位於要執行的兩個語句中間,如果第一個出錯,那麼判斷語句不輸出;如果第二個出錯那麼判斷語句先輸出,例子如下,
1.2判斷語句

package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        System.out.print("[請輸入一個整數]> ");
        int x = 0, y = 0;
        try{
            x = in.nextInt();
            System.out.println("您輸入的整數x爲=> "+x);
            
            System.out.println("此語句出現說明x的輸入無問題");//判斷語句
            
            System.out.print("[請輸入另一個整數]> ");
            y = in.nextInt();
            System.out.println("您輸入的整數y爲=> "+y);
        }catch (Exception e){
            System.out.println("您輸入的不是一個整數!");
        }
    }
}

下面我們展示三種情況來說明這樣一個判斷語句,
第一種情況:我們對x輸入a,那麼立即結束程序運行輸出“您輸入的不是一個整數”

[請輸入一個整數]> a
您輸入的不是一個整數!

第二種情況:我們對x輸入2,程序繼續運行輸出x的展示以及判斷語句,然後對y輸入a,立即結束程序運行,輸出報錯語句,

[請輸入一個整數]> 2
您輸入的整數x爲=> 2
此語句出現說明x的輸入無問題
[請輸入另一個整數]> a
您輸入的不是一個整數!

第三種情況:我們對x輸入2,程序繼續運行輸出x的展示以及判斷語句,然後對y輸入3,正常運行完整程序。因此我們就可以看出當判斷語句出現時說明上一個語句無問題。

[請輸入一個整數]> 2
您輸入的整數x爲=> 2
此語句出現說明x的輸入無問題
[請輸入另一個整數]> 3
您輸入的整數y爲=> 3

在catch後面的Exceotion e表示包括又有的錯誤類別,到後面可以針對不同的錯誤設置不同的catch進行報錯。
1.3調用時的異常捕捉機制
當我們需要調用上面輸入的函數時,我們可以創建對象來完成調用,但此時遇到一個問題就是,我們調用了後,如果錯誤輸入非整數型數據,那麼就會執行“您輸入的不是一個整數!”語句,那如果別人需要設置自己的報錯語句應該怎麼來設置呢?怎麼來實現更加個性化的報錯語句呢?
首先我們需要將之前測試的主方法改爲方法,然後再方法名後面寫上throws Exception來使得調用用戶自定義報錯語句,

package mycp7;

import java.util.Scanner;

public class Csdn5_1 {
    void input() throws Exception{
        Scanner in = new Scanner(System.in);
        System.out.print("[請輸入一個整數]> ");
        int x = 0, y = 0;
        x = in.nextInt();
        System.out.println("您輸入的整數x爲=> " + x);
        System.out.println("此語句出現說明x的輸入無問題");//判斷語句
        System.out.print("[請輸入另一個整數]> ");
        y = in.nextInt();
        System.out.println("您輸入的整數y爲=> " + y);
    }
}

然後創建另一個java類,我們來進行方法的調用,

package mycp7;

public class Csdn5_2 {
    public static void main(String[] args) {
        Csdn5_1 k = new Csdn5_1();
        try{
            System.out.println("我們需要輸入x, y兩個值");
            k.input();
        }catch (Exception e){
            System.out.println("警告:錯誤!");
        }
    }
}
我們需要輸入x, y兩個值
[請輸入一個整數]> a
警告:錯誤!

2.常用實用類String
下面我們將介紹幾個在JAVA中比較常用的類,並附帶例子進行分享,在今天的分享中我們主要分享String類的一些實用方法。
String類在java.lang的包中,這個包被默認加載了,所以不需要單獨的調用,需要注意的是String類的聲明爲final類,也就是用戶不能對String類進行重寫,對於String類的用法我們繼續分享,
2.1常量對象
也就是直接利用String聲明變量,例如,雖然a、b的值是一樣的但是會給這兩個常量賦予不同的儲存位置,

package mycp7;

public class Csdn5_3 {
    String a = "123", b = "123";
}

2.2String對象
還可以通過String類來聲明對象並創建對象,這裏有幾種常用的用法,
1)這裏對兩個對象分別聲明瞭同樣的內容,但值得注意的是如果對s和t兩個對象利用s==t會返回false,因爲比較的是兩個對象的索引,儲存在不同的位置,所以對於非java8個基礎類型的數據,我們均不使用雙等號,具體方法會在後文講到,
2)可以對char數組進行String的自動連接,生成字符串;
3)可以指定String連接char中的某一段,String(a,2,4)表示從第3位開始取4個值進行拼接,具體例子如下,

package mycp7;

public class Csdn5_3 {
	//String聲明對象
    String s = new String("We are students");
    String t = new String("We are students");
	
	//String對char的拼接	
    public static void main(String[] args) {
        char x[] = {'我','是','明','曦','君','!'};
        String xx1 = new String(x);
        System.out.println(xx1);
        //相當於String xx1 = new String("我是明曦君!");
        String xx2 = new String(x,2,3);
        System.out.println(xx2);
    }
}
我是明曦君!
明曦君

2.3String類常用的方法
下面來介紹一些對於String的常用方法,
1)public int length():獲取字符串長度。
我們在JAVA系列的第一篇的時候對數組長度的計算用到了length,但沒有括號,因爲有括號的是方法。這裏值得注意的是JAVA中漢字佔一個長度,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String m = new String("abc明曦君");
        System.out.println(m.length());  
    }
}
6

2)public boolean equals(String s):判斷當前String對象的字符序列是否與參數s指定的String對象的字符序列相同;
所以我們再次強調,對於JAVA的非基礎類型數據,我們不要使用雙等號去判斷數據是否相等。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String s = new String("We are students");
        String t = new String("We are students"); 
        if(s == t){
            System.out.println("s和t的值相等");
        }else{
            System.out.println("雙等號:s和t的值不等");
            
        if(s.equals(t)){
            System.out.println("s和t的值相等");
    }
}
雙等號:s和t的值不等
s和t的值相等

3)public boolean startsWith(String s):判斷當前String對象是否以制定字符開頭;
這個方法可以用於大規模識別一些數據的格式是否正確,比如識別省份證是否以5開頭,這類的。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String z = new String("我是明曦君");
        if(z.startsWith("我")){
            System.out.println("字符串是以“我”開始的");
    }
}
字符串是以“我”開始的

4)public boolean contains(String s):判斷當前序列是否包含s序列;

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String z = new String("我是明曦君");
        if(z.contains("明曦")){
            System.out.println("包含“明曦”");
        }
    }
}
包含“明曦”

5)public int indexOf(String str):返回首次出現str序列的位置,如無值則返回-1,當然還可以設置參數,表示從第幾個字符開始搜索;
這裏就可以返回索引,返回指定字符出現的位置

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String v = new String("131452020202222");
        System.out.println(v.indexOf('2'));
        System.out.println(v.indexOf('2',6));
    }
}
5
7

6)public String trim():刪掉String對象前後的空格字符序列。
在經常輸入密碼的時候,我們可能會不經意間輸入了括號,爲此我們在做密碼分析的時候一般是去掉左右的括號,這個在SQL中的密碼分析還挺常用的。

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String w = new String("  2020-3-8   ");
        System.out.println(w+"  w長度爲: "+ w.length());
        System.out.println(w.trim()+"  w長度爲: "+ w.trim().length());
    }
}
  2020-3-8     w長度爲: 13
2020-3-8  w長度爲: 8

7)public String substring(int statrt point):就是提取字符串中的一段。
8)字符串與基本數據的相互轉化
例:String轉換爲int需要使用public satatic int parseInt(String s)
當我們看到有satatic時,就知道這個類方法,可以直接輸入類.方法進行調用,這個方法的類時Integer。這裏我們同時使用substring一區部分字段,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        int x;
        String s = "876";
        x = Integer.parseInt(s.substring(1, 3));
        System.out.println(x);
    }
}
876

同樣的我們還可以把字符串轉爲byte、short、long、float、double類型,他們對應的類分別是Byte\Short\Long\Float\Double類,對應的調用方法就是parseByte這種,這裏就不做展示了。但需要注意的是調用其他類需要注意取值範圍,這個在第一講數據基本類型裏就說過了,可以翻閱查看。

9)將基本類型或者其他類型轉化爲字符串
例:我們需要將byte、short、int、long、float、double這幾個類型的轉爲字符串型,需要使用public static String valueOf(byte n),這個方法。
10)public String toString() 就是將得到的對象轉換爲String,下面我們來展示一下把現在的時間進行提取轉化爲字符串,

package mycp7;

public class Csdn5_3 {  
    public static void main(String[] args) {
        String a = String.valueOf(11153);
        System.out.println(a.substring(1,4));
        Date d = new Date();
        System.out.println(d);
        String date = d.toString();
        System.out.println(date.substring(11, 19));
    }
}
115
Mon Mar 09 09:46:08 CST 2020
09:46:08

結語
好了,今天關於異常類已經String類的常用方法已經分享完了,後續可能會出多個續篇來對更多的常用類進行說明。
謝謝閱讀。
參考
JAVA2實用教程第5版
鏈接:https://pan.baidu.com/s/1MBWZigAGH6NYDqw3nfeWJw
提取碼:bhpl

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章