第9篇-JAVA面向對象-常用類Ⅴ

第9篇-JAVA面向對象-常用類Ⅴ

  • 每篇一句 :巨輪尋深水而航行

  • 初學心得: 沒有膽大的猜測就沒有偉大的發現

  • (筆者:JEEP/711)[JAVA筆記 | 時間:2017-04-13| JAVA面向對象 Ⅴ]


1.JAVA Scanner類

java.util.Scanner 是 Java5 的新特徵,讀者可以通過 Scanner 類來獲取用戶的輸入 
創建 Scanner 對象的基本語法格式:

Scanner s = new Scanner(System.in);

使用 next 方法代碼

1.import java.util.Scanner; 
2.public class ScannerDemo {  
3.   public static void main(String[] args) {  
4.       Scanner scan = new Scanner(System.in); 
5.            // 從鍵盤接收數據   
6.          //next方式接收字符串
7.       System.out.println("next方式接收:");
8.       // 判斷是否還有輸入
9.       if(scan.hasNext()){   
10.         String str1 = scan.next();
11.         System.out.println("輸入的數據爲:"+str1);  
12.       }  
13.    }  
14.}

使用 nextLine 方法代碼

1.import java.util.Scanner; 
2.public class ScannerDemo2 {  
3.   public static void main(String[] args) {  
4.       Scanner scan = new Scanner(System.in); 
5.           // 從鍵盤接收數據   
6.         //nextLine方式接收字符串
7.       System.out.println("nextLine方式接收:");
8.       // 判斷是否還有輸入
9.       if(scan.hasNextLine()){   
10.         String str2 = scan.nextLine();
11.         System.out.println("輸入的數據爲:"+str2);  
12.       }  
13.    }  
14.}

next() 與 nextLine() 區別 
(1.)next(): 
● 1、一定要讀取到有效字符後纔可以結束輸入 
● 2、對輸入有效字符之前遇到的空白,next() 方法會自動將其去掉 
● 3、只有輸入有效字符後纔將其後面輸入的空白作爲分隔符或者結束符, next() 不能得到帶有空格的字符串 
(2).nextLine(): 
● 1、以Enter爲結束符,也就是說 nextLine()方法返回的是輸入回車之前的所有字符。 
● 2、可以獲得空白

2.JAVA String類

String表示字符串,所謂字符串,就是一連串的字符 
String是不可變類,一旦String對象被創建,包含在對象中的字符序列(內容)是不可變的,直到對象被銷燬 
常量池:JVM中一塊獨立的區域存放字符串常量和基本類型常量(public static final)

創建String字符串格式:

1.String str = "創建字符串";

String字符串長度:用於獲取有關對象的信息的方法稱爲訪問器方法 
String 類的一個訪問器方法是 length() 方法,它返回字符串對象包含的字符數 
String字符串長度代碼

1.public class StringDemo {
2.   public static void main(String args[]) {
3.       String str = "A,B,C,D,E,F";
4.       int len = str.length();
5.       System.out.println( "str的長度是 : " + len );
6.    }
7.}

String連接字符串代碼

1.public class StringDemo3 {
2.   public static void main(String args[]) {     
3.       String string1 = "這是:";     
4.       System.out.println("1、" + string1 + "連接字符串");  
5.    }
6.}

創建格式化字符串 
輸出格式化數字可以使用 printf() 和 format() 方法 
String 類使用靜態方法 format() 返回一個String 對象而不是 PrintStream 對象 
String 類的靜態方法 format() 能用來創建可複用的格式化字符串,而不僅僅是用於一次打印輸出

printf()方法代碼:

1.System.out.printf("浮點型變量的的值爲 " +
2.                 "%f, 整型變量的值爲 " +
3.                 " %d, 字符串變量的值爲 " +
4.                 "is %s", floatVar, intVar, stringVar);

format() 方法代碼:

1.String str;
2.fs = String.format("浮點型變量的的值爲 " +
3.                  "%f, 整型變量的值爲 " +
4.                  " %d, 字符串變量的值爲 " +
5.                  " %s", floatVar, intVar, stringVar);

JAVA String 方法 
下面是是 String 類支持的方法:


NO.方法描述
1char charAt(int index)返回指定索引處的 char 值
2int compareTo(Object o)把這個字符串和另一個對象比較
3int compareTo(String anotherString)按字典順序比較兩個字符串
4int compareToIgnoreCase(String str)按字典順序比較兩個字符串,不考慮大小寫
5String concat(String str)將指定字符串連接到此字符串的結尾
6boolean contentEquals(StringBuffer sb)當且僅當字符串與指定的StringButter有相同順序的字符時候返回真
7static String copyValueOf(char[] data)返回指定數組中表示該字符序列的 String
8static String copyValueOf(char[] data, int offset, int count)返回指定數組中表示該字符序列的 String
9boolean endsWith(String suffix)測試此字符串是否以指定的後綴結束
10boolean equals(Object anObject)將此字符串與指定的對象比較
11boolean equalsIgnoreCase(String anotherString)將此 String 與另一個 String 比較,不考慮大小寫
12byte[] getBytes()使用平臺的默認字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中
13byte[] getBytes(String charsetName)是指定的字符集將此 String 編碼爲 byte 序列,並將結果存儲到一個新的 byte 數組中
14void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)將字符從此字符串複製到目標字符數組
15int hashCode()返回此字符串的哈希碼
16int indexOf(int ch)返回指定字符在此字符串中第一次出現處的索引
17int indexOf(int ch, int fromIndex)返回在此字符串中第一次出現指定字符處的索引,從指定的索引開始搜索
18int indexOf(String str)返回指定子字符串在此字符串中第一次出現處的索引
19int indexOf(String str, int fromIndex)返回指定子字符串在此字符串中第一次出現處的索引,從指定的索引開始
20String intern()返回字符串對象的規範化表示形式
21int lastIndexOf(int ch)返回指定字符在此字符串中最後一次出現處的索引
22int lastIndexOf(int ch, int fromIndex)返回指定字符在此字符串中最後一次出現處的索引,從指定的索引處開始進行反向搜索
23int lastIndexOf(String str)返回指定子字符串在此字符串中最右邊出現處的索引
24int lastIndexOf(String str, int fromIndex)返回指定子字符串在此字符串中最後一次出現處的索引,從指定的索引開始反向搜索
25int length()返回此字符串的長度
26boolean matches(String regex)告知此字符串是否匹配給定的正則表達式
27boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)測試兩個字符串區域是否相等
28boolean regionMatches(int toffset, String other, int ooffset, int len)測試兩個字符串區域是否相等
29String replace(char oldChar, char newChar)返回一個新的字符串,它是通過用 newChar 替換此字符串中出現的所有 oldChar 得到的
30String replaceAll(String regex, String replacement使用給定的 replacement 替換此字符串所有匹配給定的正則表達式的子字符串
31String replaceFirst(String regex, String replacement)使用給定的 replacement 替換此字符串匹配給定的正則表達式的第一個子字符串
32String[] split(String regex)根據給定正則表達式的匹配拆分此字符串
33String[] split(String regex, int limit)根據匹配給定的正則表達式來拆分此字符串
34boolean startsWith(String prefix)測試此字符串是否以指定的前綴開始
35boolean startsWith(String prefix, int toffset)測試此字符串從指定索引開始的子字符串是否以指定前綴開始
36CharSequence subSequence(int beginIndex, int endIndex)返回一個新的字符序列,它是此序列的一個子序列
37String substring(int beginIndex)返回一個新的字符串,它是此字符串的一個子字符串
38String substring(int beginIndex, int endIndex)返回一個新字符串,它是此字符串的一個子字符串
39char[] toCharArray()將此字符串轉換爲一個新的字符數組
40String toLowerCase()使用默認語言環境的規則將此 String 中的所有字符都轉換爲小寫
41String toLowerCase(Locale locale)使用給定 Locale 的規則將此 String 中的所有字符都轉換爲小寫
42String toString()返回此對象本身(它已經是一個字符串)
43String toUpperCase()使用默認語言環境的規則將此 String 中的所有字符都轉換爲大寫
44String toUpperCase(Locale locale)使用給定 Locale 的規則將此 String 中的所有字符都轉換爲大寫
45String trim()返回字符串的副本,忽略前導空白和尾部空白
46static String valueOf(primitive data type x)返回給定data type類型x參數的字符串表示形式

3.JAVA System 類

System 類包含一些與系統相關的類字段和方法,它不能被實例化,類中所有屬性和方法都是static,可直接被System調用 
System 類常用方法

1.static void exit(int status) 
2.//終止虛擬機的運行.對於發生了異常情況而想終止虛擬機的運行,傳遞一個非0數值,對於正常情況下退出系統傳遞0值; 
3.//該方法實際調用的是Runtime.getRuntime().exit(int status);
4.static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)  //數組拷貝
5.static long currentTimeMillis()  //返回以毫秒爲單位的當前時間
6.String getenv(String name)      //獲得指定的環境變量;
7.static void gc()  //運行垃圾回收器
8.實際上調用了 Runtime中的gc()方法;
9.Runtime.getRuntime().exec("notepad ");
10.static Properties getProperties()  //取得當前的系統屬性
11.static String getProperty(String key) //取得指定鍵指示的系統屬性 
12.static String getProperty(String key, String def)  //獲取用指定鍵描述的系統屬性,def表示默認信息


4.JAVA StringBuffer & StringBuilder 類

當對字符串進行修改的時候,需要使用 StringBuffer 和 StringBuilder 類 
JAVA StringBuffer 和 StringBuilder 類和 String 類不同的是: 
StringBuffer 和 StringBuilder 類的對象能夠被多次的修改,並且不產生新的未使用對象 
StringBuilder 類和 StringBuffer 之間的最大不同在於 StringBuilder 的方法不是線程安全的(不能同步訪問) 
由於 StringBuilder 相較於 StringBuffer 有速度優勢,所以多數情況下建議使用 StringBuilder 類

JAVA StringBuffe代碼:

1.public class Demo4 {
2. public static void main(String args[]){
3.   StringBuffer sb = new StringBuffer("推薦:");
4.   sb.append("使用");
5.   sb.append("StringBuffer類");
6.   System.out.println(sb);  
7.  }
8.}

StringBuffer: 是線程安全的; 
StringBuilder: 是線程不安全的,性能高點,推薦使用StringBuilder 
StringBuffer的字符序列是可變的(通過append等方法操作) 
StringBuffer 和 String之間的轉換; 
String toString() 返回此序列中數據的字符串表示形式 
StringBuffer(String str):以指定的字符串創建StringBuffer對象

5.JAVA Number & Math 類

1.JAVA Number 類 
當需要使用數字的時候,通常使用內置數據類型,如:byte、int、long、double…

在實際開發過程中,經常會遇到需要使用對象,而不是內置數據類型的情形 
爲了解決這個問題,Java 語言爲每一個內置數據類型提供了對應的包裝類 
所有的包裝類(Integer、Long、Byte、Double、Float、Short)都是抽象類 Number 的子類

JAVA Number類由編譯器特別支持的包裝稱爲裝箱,所以當內置數據類型被當作對象使用的時候,編譯器會把內置類型裝箱爲包裝類。相似的,編譯器也可以把一個對象拆箱爲內置類型。Number 類屬於 java.lang 包

JAVA Number代碼

1.public class Demo5 {
2.  public static void main(String args[]){
3.     Integer x = 5;
4.     x =  x + 10;
5.     System.out.println(x); 
6.   }
7.}

2.JAVA Math 類 
JAVA 的 Math 包含了用於執行基本數學運算的屬性和方法,如初等指數、對數、平方根和三角函數,Math 的方法都被定義爲 static 形式,通過 Math 類可以在主函數中直接調用 
JAVA Math代碼

1.public class Test {  
2.   public static void main (String []args) {  
3.       System.out.println("90 度的正弦值:" + Math.sin(Math.PI/2));  
4.       System.out.println("0度的餘弦值:" + Math.cos(0));  
5.       System.out.println("60度的正切值:" + Math.tan(Math.PI/3));  
6.       System.out.println("1的反正切值: " + Math.atan(1));  
7.       System.out.println("π/2的角度值:" + Math.toDegrees(Math.PI/2));  
8.       System.out.println(Math.PI);  
9.    }  
10.}

3.Number & Math 類方法

NO.方法描述
1xxxValue()將 Number 對象轉換爲xxx數據類型的值並返回
2compareTo()將number對象與參數比較
3equals()判斷number對象是否與參數相等
4valueOf()返回一個 Number 對象指定的內置數據類型
5toString()以字符串形式返回值
6parseInt()將字符串解析爲int類型
7abs()返回參數的絕對值
8ceil()對整形變量向左取整,返回類型爲double型
9floor()對整型變量向右取整。返回類型爲double類型
10rint()返回與參數最接近的整數。返回類型爲double
11round()返回一個最接近的int、long型值
12min()返回兩個參數中的最小值
13max()返回兩個參數中的最大值
14exp()返回自然數底數e的參數次方
15log()返回參數的自然數底數的對數值
16pow()返回第一個參數的第二個參數次方
17sqrt()求參數的算術平方根
18sin()求指定double類型參數的正弦值
19cos()求指定double類型參數的餘弦值
20tan()求指定double類型參數的正切值
21asin()求指定double類型參數的反正弦值
22acos()求指定double類型參數的反餘弦值
23atan()求指定double類型參數的反正切值
24atan2()將笛卡爾座標轉換爲極座標,並返回極座標的角度值
25toDegrees()將參數轉化爲角度
26toRadians()將角度轉換爲弧度
27random()返回一個隨機數

6.JAVA Date 類

java.util 包提供了 Date 類來封裝當前的日期和時間,Date 類提供兩個構造函數來實例化 Date 對象 
(1).構造函數使用當前日期和時間來初始化對象 
代碼:

1.Date( )

(2).構造函數接收一個參數,該參數是從1970年1月1日起的毫秒數

1.Date(long millisec)

Date對象創建以後,可以調用下面的方法

NO.方法描述
1boolean after(Date date)若當調用此方法的Date對象在指定日期之後返回true,否則返回false
2boolean before(Date date)若當調用此方法的Date對象在指定日期之前返回true,否則返回false
3Object clone( )返回此對象的副本
4int compareTo(Date date)比較當調用此方法的Date對象和指定日期,兩者相等時候返回0。調用對象在指定日期之前則返回負數,調用對象在指定日期之後則返回正數
5int compareTo(Object obj)若obj是Date類型則操作等同於compareTo(Date) ,否則它拋出ClassCastException
6boolean equals(Object date)當調用此方法的Date對象和指定日期相等時候返回true,否則返回false
7long getTime( )返回自 1970 年 1 月 1 日 00:00:00 GMT 以來此 Date 對象表示的毫秒數
8int hashCode( )返回此對象的哈希碼值
9void setTime(long time)用自1970年1月1日00:00:00 GMT以後time毫秒數設置時間和日期
10String toString( )轉換Date對象爲String表示形式,並返回該字符串

獲取當前日期時間代碼

1.import java.util.Date;
2.public class DateDemo {
3.  public static void main(String args[]) {
4.      // 初始化 Date 對象
5.      Date date = new Date();        
6.      // 使用 toString() 函數顯示日期時間
7.      System.out.println(date.toString());
8.   }
9.}

使用 SimpleDateFormat 格式化日期代碼 
java.text.SimpleDateFormat 
SimpleDateFormat 是一個與語言環境有關的方式來格式化和解析日期的具體類 
它允許進行格式化(日期 -> 文本)、解析(文本 -> 日期)和規範化

1.import java.util.*;
2.import java.text.*;
3.public class DateDemo {
4.  public static void main(String args[]) {
5.     Date dNow = new Date( );
6.     SimpleDateFormat ft = 
7.     new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz"); 
8.     System.out.println("Current Date: " + ft.format(dNow));
9.  }
10.}

DateFormat 格式化編碼:時間模式字符串用來指定時間格式。在此模式中,所有的 ASCII 字母被保留爲模式字母

字母描述示例
G紀元標記AD
y四位年份2017
M月份July or 07
d一個月的日期10
hA.M./P.M. (1~12)格式小時12
H一天中的小時 (0~23)22
m分鐘數30
s秒數35
S毫秒數156
E星期幾Tuesday
D一年中的日子360
F一個月中第幾周的周幾2 (second Wed. in July)
w一年中第幾周40
W一個月中第幾周1
aA.M./P.M. 標記PM
k一天中的小時(1~24)24
KA.M./P.M. (0~11)格式小時10
z時區Eastern Standard Time
文字定界符Delimiter
單引號


使用printf格式化日期代碼

1.import java.util.Date;
2.public class DateDemo {
3. public static void main(String args[]) {
4.    // 初始化 Date 對象
5.    Date date = new Date();
6.    // 使用toString()顯示日期和時間
7.    String str = String.format("顯示時間 : %tc", date ); 
8.    System.out.printf(str);
9.  }
10.}

JAVA Calendar

1.推薦使用處理日期和時間的類Calendar,是抽象類,不能實例化,通過static Calendar getInstance() 獲得一個Calendar對象
2.int get(int field):返回指定日曆字段值 
3.靜態常量:
4.YEAR 表示年的字段數字
5.MONTH 表示月份字段數字,月份範圍是[0,11]
6.DATE 表示一個月中的某天
7.DAY_OF_MONTH 表示一個月中的某天
8.DAY_OF_WEEK 表示一個星期中的某天
9.HOUR_OF_DAY / HOUR 表示第幾小時
10.MINUTE  表示第幾分鐘
11.SECOND     表示第幾秒

JAVA Calendar常用方法

1.Date getTime() 返回一個表示此 Calendar 時間值的 Date 對象 
2.void set(int year, int month, int date, int hour, int minute, int second)   
3.設置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值
4.abstract void add(int field, int amount) 根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量
5.若 amount爲負數,則減去一天,若 amount爲正數 ,則加上一天

7.JAVA 正則表達式

正則表達式定義了字符串的模式 
正則表達式可以用來搜索、編輯或處理文本。 
正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別

Pattern類和Matcher類 
兩個類存在於java.util.regex包中

java.util.regex 包主要包括以下三個類: 
● Pattern 類: 
pattern 對象是一個正則表達式的編譯表示。Pattern 類沒有公共構造方法。要創建一個 Pattern 對象,你必須首先調用其公共靜態編譯方法,它返回一個 Pattern 對象。該方法接受一個正則表達式作爲它的第一個參數 
Pattern類常用方法: 
Pattern類主要是編寫正則表達式規範

1.public static Pattern compile(String regex)  //指定正則表達式規則
2.public Matcher matcher(CharSequence input) //返回Matcher類實例
3.public String split(Char Sequence input) //字符串拆分

在Pattern類中若要取得Pattern的實例,則調用其compile(String regex)方法

● Matcher 類: 
Matcher類主要是執行規範,驗證字符串是否符合其規範 
Matcher 對象是對輸入字符串進行解釋和匹配操作的引擎。與Pattern 類一樣,Matcher 也沒有公共構造方法。你需要調用 
Pattern 對象的 matcher 方法來獲得一個 Matcher 對象 
Matcher類常用方法

1.public boolean matcher() //執行驗證
2.public String replaceAll(String replacement)  //字符串替換

● PatternSyntaxException: 
PatternSyntaxException 是一個非強制異常類,它表示一個正則表達式模式中的語法錯誤 
PatternSyntaxException代碼:

1.import java.util.regex.*;
2.class RegexExample1{
3.  public static void main(String args[]){
4.     String content = "I am noob " +
5.     "from runoob.com."; 
6.     String pattern = ".*runoob.*";
7.     boolean isMatch = Pattern.matches(pattern, content);
8.     System.out.println("字符串中是否包含了 'runoob' 子字符串? " + isMatch);
9.   }
10.}

常用正則規範

NO.規範描述
1\\表示反斜線(\)字符
2\t表示製表符
3\n表示換行
4[abc]字符a、b或c
5[^abc]除了a、b、c之外的任意字符
6[a-zA-Z0-9]表示由字母、數字組成
7\d表示數字
8\D表示非數字
9\w表示字母、數字、下劃線
10\W表示非字母、數字、下劃線
11\s表示所有空白(換行、空格等)
12\S表示非字母、數字、下劃線
13^行的開頭
14$行的結尾
15.匹配除換行符之外的任意字符

初學(面向對象近階段) Ⅴ 難點: ★★★★★

希望每一篇文章都能夠對讀者們提供幫助與提升,這乃是每一位筆者的初衷


感謝您的閱讀 歡迎您的留言與建議


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