J2SE核心开发实战(二)——字符串与包装类
字符串與包裝類
一、實驗簡單介紹
在本章。我們將學習一些用于處理字符串的API以及包裝類的相關知識。
本章知識點
- 字符串API
- 包裝類及其應用
二、認識字符串類
1. 什么是字符串類
Java字符串類(java.lang.String)是Java中使用最多的類。也是最為特殊的一個類,非常多時候,我們對它既熟悉又陌生。
首先你要知道什么是字符串:
字符串(String)是由數字、字母、下劃線組成的一串字符,是編程語言中表示文本的數據類型。
你能夠查看很多其它關于字符串的知識。
操作字符串的經常用法有復制、計算其長度、查找字符串中的某些字符等。
然而,Java標準庫中的String類包括非常多的方法,要想記住全部的類和方法是一件不太可能的事情。最好的辦法就是養成隨時查閱API文檔的習慣。在最后的參考文獻中我們為你提供了官方API文檔的鏈接,你能夠在當中具體查看每個操作字符串的方法。
查閱API文檔對于未來章節的學習也十分重要,請保持這個習慣。
2. 用String類中的自帶方法操作字符串
在Eclipse中創建項目StringUtil,新建一個com.shiyanlou.course包,并創建StringTools類。
這里會用到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位部分作為新的字符串。
基本的代碼例如以下:
同樣,你不必在實驗環境中輸入這些中文凝視。
package com.shiyanlou.course;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();//創建3個字符串對象Scanner scan = new Scanner(System.in);// 創建掃描器System.out.println("Please input a sentence with 10 more letters include space(s) : ");// 獲得用戶輸入的包括空格的字符串a = scan.nextLine();//將鍵盤上的輸入賦到字符串a中b = a.trim();//將a中頭部和尾部的空格去掉,賦值到b中if(b.equals("shiyanlou"))c = b.substring(0, 6);else {c = "";}//假設b字符串為shiyanlou,則取其第0個到第6個字符作為子串,賦值到c中//假設b字符串不為shiyanlou。則c的值為空System.out.println("a :"+a);System.out.println("The length of a is :"+a.length());System.out.println("b :"+b);System.out.println("The length of b is :"+b.length());System.out.println("c :"+c);System.out.println("The length of c is :"+c.length());//分別輸出a、b、c三個字符串及其長度}}點擊編譯并執行,在控制臺先輸入5個空格。緊接著輸入shiyanlou,再輸入4個空格并回車。能夠看到輸出結果例如以下:
你可能想問:我們在比較字符串的時候為什么不用==而用equals()呢?
你能夠點此了解很多其它關于”==”和equals的信息。
三、認識包裝類
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. 比較Double類型
首先你應該知道double和Double的差別,前者是基本的數據類型,后者是引用類型。即包裝類。我們能夠直接使用普通運算符“==”對基本數據類型進行比較。但假設將“==”用于比較引用類型的話,僅僅會推斷其內存地址是否同樣。而且結果一般是否定的。
在Eclipse中創建項目DoubleCompare,新建一個com.shiyanlou.course包。并創建DoubleCompare類。
在該類的main()方法中,定義兩個含有數字的字符串并將其轉換為Double類型的數據。
String s_1 = "123.321"; String s_2 = "567.765"; //顯然,這里的123.321和567.765都不是數值。而是“一句話” //你也能夠自己定義這些數字Double num_1 = Double.parseDouble(s_1); Double num_2 = Double.parseDouble(s_2); //定義了Double類型的數據,并將字符串轉換為雙精度浮點數賦予其值上面的parseDouble(String s)就是Double類中自帶的將字符串中的數字轉換為double類型的方法。
我們再將其輸出。
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("number 1 is smaller than number 2");break;case 0:System.out.println("number 1 is equal to number 2");break;case 1:System.out.println("number 1 is bigger than number 2");break; }相信你能夠理解這個分支語句的含義。須要特別說明的是。compareTo(Double anotherDouble)也是Double類提供的一個方法,用于比較兩個Double類型數據的大小,返回值為int類型。-1、0、1分別代表小于、等于和大于。
該案例的完整代碼例如以下圖所看到的:
點擊編譯并執行。能夠在控制臺看到輸出結果:
四、實驗總結
在本章我們主要學習了字符串的定義和經常使用的生成子串、去除空格、比較等方法,和包裝類的定義及其基本的操作方法。
參考文檔中為你提供了很多其它關于它們的知識。最好還是試試字符串拼接等本課程還未用到的方法。
在實驗樓學習結束后,也不要忘記多看看這些API文檔,多動手寫寫代碼,天道酬勤!
五、作業
請使用String類的toLowerCase()和toUpperCase()方法寫一個字符串大寫和小寫轉換工具。
參考文檔
關于字符串API,你能夠查看Java SE官方文檔獲取很多其它更好玩的內容:
+ Java SE官方API文檔 - Java.lang.String
以下是Java中一些包裝類的官方技術文檔:
- Java SE官方API文檔 - Java.lang.Byte
- Java SE官方API文檔 - Java.lang.Boolean
- Java SE官方API文檔 - Java.lang.Integer
我們沒有給出全部的包裝類參考文檔。請你自己動手Ctrl+F體會一下查找的過程。
本文原文鏈接:https://www.shiyanlou.com/courses/111 本課為實驗樓原創課程,轉載請注明。
總結
以上是生活随笔為你收集整理的J2SE核心开发实战(二)——字符串与包装类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 95后实习生的远程办公体验(asp.ne
- 下一篇: acm之简单博弈 Nim Bash Wy