字符串與包裝類


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()方法。

  1. String trim(),該方法返回一個新字符串,新的字符串刪除了原始串中首尾的空格。
  2. String substring(int beginIndex, int endIndex),該方法返回一個新字符串,新的字符串包含原來字符串中從beginIndex到endIndex-1的所有內容。
  3. boolean equals(Object other),該方法用於比較兩個字符串,如果原字符串與other相等,則返回true。
  4. 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

  包裝類的用途主要包含兩種:

  1. 作為和基本數據類型對應的類類型存在,方便涉及到對象的操作。
  2. 包含每種基本數據類型的相關屬性如最大值、最小值等,以及相關的操作方法。

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM