在 Java 中我們?nèi)绾潍@取字符串的最后幾個字符?

簡介

在這篇文章中,我們將學(xué)習(xí)Java編程中的字符串(String)以及如何通過示例程序獲取字符串的最后一個字符。

什么是 Java 中的字符串?

在 Java 編程語言中,字符串用于表示字符序列。String 類用于在 Java 中創(chuàng)建字符串。

字符串是一個對象,它代表一系列字符值。Java 平臺提供了 String 類來創(chuàng)建字符串。

Java 提供了各種方法來對字符串執(zhí)行不同的操作,例如 Strings.length()、String.charAt()String.toCharArray() 等。字符數(shù)組的工作方式與 Java 字符串類似。

讓我們來看下面的一個例子。


public class ExampleStringasCharArray {
    public static void main(String args[]) {
        char[] c = {'c', 's', 'h', 'a', 'r', 'p', 'c', 'o', 'r', 'n', 'e', 'r'};
        String s = new String(c);
        System.out.println(s);
    }
}

上述代碼會將字符串打印為輸出,生成如下輸出:

output_image1.PNG

Java 中的字符串


public class ExampleString {
    public static void main(String args[]) {
        String s1 = "CsharpCorner";
        String s2 = "CsharpCorner Live";
        System.out.println("First String : " + s1);
        System.out.println("Second String : " + s2);
    }
}

上述代碼會將字符串打印為輸出,生成如下輸出:

output_image2.PNG

如何在 Java 中創(chuàng)建字符串對象?

在 Java 中,有兩種方式可以創(chuàng)建字符串對象:

  • 字符串字面量
  • 通過 new 關(guān)鍵字

字符串字面量

字符串字面量是通過雙引號(“”)在 Java 編程中創(chuàng)建的。下面是字符串字面量的示例程序。


public class LiteralStringExample {
    public static void main(String args[]) {
        String s = "Csharp Corner";
        System.out.println("String Literal : " + s);
    }
}

上述程序生成如下輸出:

output_image3.PNG

解釋

在上述例子中,每次我們創(chuàng)建字符串字面量時,JVM首先檢查字符串常量池。如果該字符串已經(jīng)在池中存在,則返回池中的引用。如果字符串不在池中,則創(chuàng)建一個新的字符串實例并放入池中。

字符串實例的代碼示例


public class StringInstanceExample {
    public static void main(String args[]) {
        String s = "Csharp Corner";
        String s1 = "Csharp Corner";
        System.out.println("String Literal : " + s);
        System.out.println("String Literal instance : " + s1);
    }
}

上述代碼生成如下輸出:

output_image4.PNG

解釋

在上述示例中,只會創(chuàng)建一個對象。首先,JVM 檢查字符串常量池,沒有找到值為“Csharp Corner”的字符串對象,因此它會創(chuàng)建一個新對象。之后它發(fā)現(xiàn)池中已經(jīng)存在“Csharp Corner”的字符串,因此不會創(chuàng)建新對象,而是返回相同對象的引用。

讓我們通過下圖來理解:

string_object_stored.PNG

字符串對象存儲在一個特殊的內(nèi)存區(qū)域中,這個區(qū)域叫做字符串常量池。Java 使用字符串字面量的概念使得內(nèi)存更加高效。

通過 new 關(guān)鍵字

在下面的示例中,JVM 會在堆內(nèi)存中創(chuàng)建一個新的字符串對象,而字面量“Csharp”將位于字符串常量池中。變量 s1 將引用堆內(nèi)存中的對象。下面是通過 new 關(guān)鍵字創(chuàng)建字符串的示例程序。


public class NewKeywordString {
    public static void main(String args[]) {
        //通過Java字符串字面量創(chuàng)建字符串
        String str1 = "Csharp";
        char a[] = {'W', 'e', 'l', 'c', 'o', 'm', 'e'};
        //將字符數(shù)組轉(zhuǎn)換為字符串
        String str2 = new String(a);
        //通過new關(guān)鍵字創(chuàng)建字符串
        String str3 = new String("Csharp Corner");
        System.out.println(str1);
        System.out.println(str2);
        System.out.println(str3);
    }
}

上述程序生成如下輸出:

output_image5.PNG

解釋

在上述例子中,我們通過Java字符串字面量和new關(guān)鍵字創(chuàng)建了字符串。

如何獲取 Java 字符串的最后一個字符?

接下來,我們將學(xué)習(xí)如何在 Java 編程中獲取字符串的最后一個字符。Java 提供了多種方式來獲取字符串的最后一個字符:

通過 charAt() 方法

如果我們想要獲取字符串的最后一個字符,可以通過調(diào)用 String.charAt(length-1) 方法來實現(xiàn)。例如,若我們有一個字符串 str="CsharpCorner",那么我們可以通過 str.charAt(11) 來獲取字符串的最后一個字符。該方法將打印出字母“r”作為輸出。下面是使用 charAt() 方法的示例程序。


public class CharAtExample {
    public static void main(String arg[]) {
        String str = new String("Csharpcorner");
        System.out.println("Last character of the String : " + str.charAt(str.length()-1));
    }
}

解釋

在上述代碼示例中,首先我們創(chuàng)建了一個名為 str 的字符串對象,并存儲字符串值為“CsharpCorner”。當(dāng)我們打印字符串的最后一個字符時,使用了 charAt() 方法,該值為 length-1,因為字符串的索引是從 0 開始的。

如果 charAt() 方法的索引參數(shù)為負(fù)值或大于字符串的長度,則該方法會拋出“ArrayIndexOutOfBoundsException”異常。下面是該異常的代碼示例:


public class ExceptionCharAtExample {
    public static void main(String args[]) {
        String str = "C#Corner";
        char[] chrs = str.toCharArray();
        char firstChar = chrs[0];
        System.out.println("First letter : " + firstChar);
        //異常示例
        char exception = chrs[-1];
        System.out.println("First letter : " + exception);
        System.out.println("First letter : " + firstChar);
    }
}

解釋

在上述示例程序中,我們創(chuàng)建了一個名為“str”的字符串,然后通過索引0打印了字符串的第一個字母。接著,我們使用索引“-1”導(dǎo)致拋出異常。上述程序生成的輸出如下:

output_image6.PNG

獲取字符串最后一個字符的另一示例程序


public class LastCharacterExample {
    public static void main(String args[]) {
        String str = new String("CsharpCorner");
        System.out.println("Last character of the String : " + str.charAt(str.length()-1));
    }
}

上述程序生成的輸出如下:

output_image7.PNG

解釋

在上述示例程序中,我們首先創(chuàng)建了一個名為“Welcome”的字符串對象。接著,我們計算了字符串的長度并將該值存儲在一個名為“n”的int變量中。最后,我們打印了“n-1”位置的字符作為輸出,找到了字符串的最后一個字符“e”。

總結(jié)

在這篇文章中,我們學(xué)習(xí)了 Java 編程中的 String 類,了解了如何創(chuàng)建字符串以及如何通過不同的示例程序獲取字符串的最后一個字符。

 

若你想提升Java技能,可關(guān)注我們的Java培訓(xùn)課程。