在 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ì)將字符串打印為輸出,生成如下輸出:
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ì)將字符串打印為輸出,生成如下輸出:
如何在 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);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,每次我們創(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);
}
}
上述代碼生成如下輸出:
解釋
在上述示例中,只會(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)理解:
字符串對(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);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,我們通過(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)致拋出異常。上述程序生成的輸出如下:
獲取字符串最后一個(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));
}
}
上述程序生成的輸出如下:
解釋
在上述示例程序中,我們首先創(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)課程。