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

簡(jiǎn)介

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

什么是 Java 中的字符串?

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

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

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

讓我們來(lái)看下面的一個(gè)例子。


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);
    }
}

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

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);
    }
}

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

output_image2.PNG

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

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

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

字符串字面量

字符串字面量是通過(guò)雙引號(hào)(“”)在 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)建字符串字面量時(shí),JVM首先檢查字符串常量池。如果該字符串已經(jīng)在池中存在,則返回池中的引用。如果字符串不在池中,則創(chuàng)建一個(gè)新的字符串實(shí)例并放入池中。

字符串實(shí)例的代碼示例


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

解釋

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

讓我們通過(guò)下圖來(lái)理解:

string_object_stored.PNG

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

通過(guò) new 關(guān)鍵字

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


public class NewKeywordString {
    public static void main(String args[]) {
        //通過(guò)Java字符串字面量創(chuàng)建字符串
        String str1 = "Csharp";
        char a[] = {'W', 'e', 'l', 'c', 'o', 'm', 'e'};
        //將字符數(shù)組轉(zhuǎn)換為字符串
        String str2 = new String(a);
        //通過(guò)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

解釋

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

如何獲取 Java 字符串的最后一個(gè)字符?

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

通過(guò) charAt() 方法

如果我們想要獲取字符串的最后一個(gè)字符,可以通過(guò)調(diào)用 String.charAt(length-1) 方法來(lái)實(shí)現(xiàn)。例如,若我們有一個(gè)字符串 str="CsharpCorner",那么我們可以通過(guò) str.charAt(11) 來(lái)獲取字符串的最后一個(gè)字符。該方法將打印出字母“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)建了一個(gè)名為 str 的字符串對(duì)象,并存儲(chǔ)字符串值為“CsharpCorner”。當(dāng)我們打印字符串的最后一個(gè)字符時(shí),使用了 charAt() 方法,該值為 length-1,因?yàn)樽址乃饕菑?0 開始的。

如果 charAt() 方法的索引參數(shù)為負(fù)值或大于字符串的長(zhǎng)度,則該方法會(huì)拋出“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)建了一個(gè)名為“str”的字符串,然后通過(guò)索引0打印了字符串的第一個(gè)字母。接著,我們使用索引“-1”導(dǎo)致拋出異常。上述程序生成的輸出如下:

output_image6.PNG

獲取字符串最后一個(gè)字符的另一示例程序


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)建了一個(gè)名為“Welcome”的字符串對(duì)象。接著,我們計(jì)算了字符串的長(zhǎng)度并將該值存儲(chǔ)在一個(gè)名為“n”的int變量中。最后,我們打印了“n-1”位置的字符作為輸出,找到了字符串的最后一個(gè)字符“e”。

總結(jié)

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

 

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