1. 字符串類
1.1 字符串類定義
Java字符串類(java.lang.String)是java中使用最多的類,也是最為特殊的一個類。
字符串(String)是由數字、字母、下划線組成的一串字符,是編程語言中表示文本的數據類型。
操作字符串的常用方法有復制、計算其長度、查找字符串中的某些字符等。java標准庫中的String類包含很多的想法,想要記住所有的類和方法是一件很困難的事情,最好的辦法就是養成隨時查閱API文檔的習慣。下面是API文檔的鏈接:
Java SE官方API文檔 - Java.lang.String
Java SE官方API文檔 - Java.lang.Byte
Java SE官方API文檔 - Java.lang.Boolean
Java SE官方API文檔 - Java.lang.Integer
1.2 用String類中自帶方法操作字符串
這里會用到trim()、substring()、equals()和length()方法。
- String trim(),該方法返回一個新字符串,新的字符串刪除了原始串中首尾的空格。
- String substring(int beginIndex, int endIndex),該方法返回一個新字符串,新的字符串包含原來字符串中從beginIndex到endIndex-1的所有內容。
- boolean equals(Object other),該方法用於比較兩個字符串,如果原字符串與other相等,則返回true。
- int length(),該方法返回一個字符串的長度。
這個項目首先需要獲取來自用戶的輸入,然后去除輸入的字符串中首尾多余的空格,再與字符串shiyanlou相比較,如果兩個字符串相同,則截取該字符串前6位部分作為新的字符串。
import java.util.Scanner; public class StringTools { public static void main(String[] args) { String a = new String(); String b = new String(); String c = new String(); Scanner scan = new Scanner(System.in); //創建掃描器 System.out.println("please input a string with 10 more letters includes space : "); a=scan.nextLine(); b=a.trim(); if(b.equals("shiyanlou")) c=b.substring(0, 6); else c = ""; System.out.println("a : "+a); System.out.println("The length of a if: " + a.length()); System.out.println("b : "+b); System.out.println("The length of b if: " + b.length()); System.out.println("c : "+c); System.out.println("The length of c if: " + c.length()); } }
please input a string with 10 more letters includes space : shiyanlou a : shiyanlou The length of a if: 14 b : shiyanlou The length of b if: 9 c : shiyan The length of c if: 6
==和equals()的區別:
“==”比較的是一個對象在內存中的地址值,棧中的內容是否相同
“equals()”是針對引用的,比較的是引用類型的內容一樣不一樣,堆中的內容是否相同。
重寫equals()方法的時候,需重寫hashcode方法,這樣比較的時候,比較的是兩個對象的hash值,不同對象的hash值不同。
2. 認識包裝類
2.1 包裝類定義
我們知道,Java語言是面向對象的,但Java中的基本數據類型卻不是面向對象的。這在實際使用過程中造成了諸多不便。為了解決此問題,Java語言的設計者們在設計類時,為每種基本數據類型也設計了一個對應的類。這八個和基本數據類型對應的類統稱為包裝類(Wrapper Class),也稱為外覆類或數據類型類。
包裝類均位於java.lang包中,下表給出了包裝類和基本數據類型的對應關系:
基本數據類型 | 對應包裝類 |
---|---|
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
包裝類的用途主要包含兩種:
- 作為和基本數據類型對應的類類型存在,方便涉及到對象的操作。
- 包含每種基本數據類型的相關屬性如最大值、最小值等,以及相關的操作方法。
2.2 比較Double類型
首先你應該知道double和Double的區別,前者是基本的數據類型,后者是引用類型,即包裝類。我們可以直接使用普通運算符“==”對基本數據類型進行比較,但如果將“==”用於比較引用類型的話,只會判斷其內存地址是否相同,並且結果通常是否定的。
public class DoubleCompare { public static void main(String[] args) { String s_1 = "123.321"; String s_2 = "567.765"; //上面的parseDouble(String s)就是Double類中自帶的將字符串中的數字轉換為double類型的方法。 Double num_1 = Double.parseDouble(s_1); Double num_2 = Double.parseDouble(s_2); System.out.println("number 1:" + num_1); System.out.println("number 2:" + num_2); switch(num_1.compareTo(num_2)) { case -1: System.out.println("num_1 is smaller than num_2"); break; case 0: System.out.println("num_1 is equal to num_2"); break; case 1: System.out.println("num_1 is bigger than num_2"); break; } } }
number 1:123.321 number 2:567.765 num_1 is smaller than num_2