1. 程式人生 > >J2SE核心開發實戰(二)——字符串與包裝類

J2SE核心開發實戰(二)——字符串與包裝類

刪除 i++ cnblogs amp 分支語句 核心 最大 用途 else

字符串與包裝類

一、實驗簡單介紹

在本章。我們將學習一些用於處理字符串的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),該方法返回一個新字符串,新的字符串包括原來字符串中從beginIndexendIndex-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類型

首先你應該知道doubleDouble的差別,前者是基本的數據類型,後者是引用類型。即包裝類。我們能夠直接使用普通運算符“==”對基本數據類型進行比較。但假設將“==”用於比較引用類型的話,僅僅會推斷其內存地址是否同樣。而且結果一般是否定的。

在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類型。-101分別代表小於、等於和大於。

該案例的完整代碼例如以下圖所看到的:

技術分享

點擊編譯並執行。能夠在控制臺看到輸出結果:

技術分享

四、實驗總結

在本章我們主要學習了字符串的定義和經常使用的生成子串、去除空格、比較等方法,和包裝類的定義及其基本的操作方法。

參考文檔中為你提供了很多其它關於它們的知識。最好還是試試字符串拼接等本課程還未用到的方法。

在實驗樓學習結束後,也不要忘記多看看這些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核心開發實戰(二)——字符串與包裝類