在 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);
}
}
上述代碼會將字符串打印為輸出,生成如下輸出:
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);
}
}
上述代碼會將字符串打印為輸出,生成如下輸出:
如何在 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);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,每次我們創(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);
}
}
上述代碼生成如下輸出:
解釋
在上述示例中,只會創(chuàng)建一個對象。首先,JVM 檢查字符串常量池,沒有找到值為“Csharp Corner”的字符串對象,因此它會創(chuàng)建一個新對象。之后它發(fā)現(xiàn)池中已經(jīng)存在“Csharp Corner”的字符串,因此不會創(chuàng)建新對象,而是返回相同對象的引用。
讓我們通過下圖來理解:
字符串對象存儲在一個特殊的內(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);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,我們通過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)致拋出異常。上述程序生成的輸出如下:
獲取字符串最后一個字符的另一示例程序
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));
}
}
上述程序生成的輸出如下:
解釋
在上述示例程序中,我們首先創(chuàng)建了一個名為“Welcome”的字符串對象。接著,我們計算了字符串的長度并將該值存儲在一個名為“n”的int變量中。最后,我們打印了“n-1”位置的字符作為輸出,找到了字符串的最后一個字符“e”。
總結(jié)
在這篇文章中,我們學(xué)習(xí)了 Java 編程中的 String 類,了解了如何創(chuàng)建字符串以及如何通過不同的示例程序獲取字符串的最后一個字符。
若你想提升Java技能,可關(guān)注我們的Java培訓(xùn)課程。