在 Java 中我們如何獲取字符串的最后幾個字符?
簡介
在這篇文章中,我們將學習Java編程中的字符串(String)以及如何通過示例程序獲取字符串的最后一個字符。
什么是 Java 中的字符串?
在 Java 編程語言中,字符串用于表示字符序列。String 類用于在 Java 中創建字符串。
字符串是一個對象,它代表一系列字符值。Java 平臺提供了 String 類來創建字符串。
Java 提供了各種方法來對字符串執行不同的操作,例如 Strings.length()
、String.charAt()
、String.toCharArray()
等。字符數組的工作方式與 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 中創建字符串對象?
在 Java 中,有兩種方式可以創建字符串對象:
- 字符串字面量
- 通過
new
關鍵字
字符串字面量
字符串字面量是通過雙引號(“”)在 Java 編程中創建的。下面是字符串字面量的示例程序。
public class LiteralStringExample {
public static void main(String args[]) {
String s = "Csharp Corner";
System.out.println("String Literal : " + s);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,每次我們創建字符串字面量時,JVM首先檢查字符串常量池。如果該字符串已經在池中存在,則返回池中的引用。如果字符串不在池中,則創建一個新的字符串實例并放入池中。
字符串實例的代碼示例
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);
}
}
上述代碼生成如下輸出:
解釋
在上述示例中,只會創建一個對象。首先,JVM 檢查字符串常量池,沒有找到值為“Csharp Corner”的字符串對象,因此它會創建一個新對象。之后它發現池中已經存在“Csharp Corner”的字符串,因此不會創建新對象,而是返回相同對象的引用。
讓我們通過下圖來理解:
字符串對象存儲在一個特殊的內存區域中,這個區域叫做字符串常量池。Java 使用字符串字面量的概念使得內存更加高效。
通過 new
關鍵字
在下面的示例中,JVM 會在堆內存中創建一個新的字符串對象,而字面量“Csharp”將位于字符串常量池中。變量 s1
將引用堆內存中的對象。下面是通過 new
關鍵字創建字符串的示例程序。
public class NewKeywordString {
public static void main(String args[]) {
//通過Java字符串字面量創建字符串
String str1 = "Csharp";
char a[] = {'W', 'e', 'l', 'c', 'o', 'm', 'e'};
//將字符數組轉換為字符串
String str2 = new String(a);
//通過new關鍵字創建字符串
String str3 = new String("Csharp Corner");
System.out.println(str1);
System.out.println(str2);
System.out.println(str3);
}
}
上述程序生成如下輸出:
解釋
在上述例子中,我們通過Java字符串字面量和new
關鍵字創建了字符串。
如何獲取 Java 字符串的最后一個字符?
接下來,我們將學習如何在 Java 編程中獲取字符串的最后一個字符。Java 提供了多種方式來獲取字符串的最后一個字符:
通過 charAt()
方法
如果我們想要獲取字符串的最后一個字符,可以通過調用 String.charAt(length-1)
方法來實現。例如,若我們有一個字符串 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));
}
}
解釋
在上述代碼示例中,首先我們創建了一個名為 str
的字符串對象,并存儲字符串值為“CsharpCorner”。當我們打印字符串的最后一個字符時,使用了 charAt()
方法,該值為 length-1
,因為字符串的索引是從 0 開始的。
如果 charAt()
方法的索引參數為負值或大于字符串的長度,則該方法會拋出“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);
}
}
解釋
在上述示例程序中,我們創建了一個名為“str”的字符串,然后通過索引0打印了字符串的第一個字母。接著,我們使用索引“-1”導致拋出異常。上述程序生成的輸出如下:
獲取字符串最后一個字符的另一示例程序
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));
}
}
上述程序生成的輸出如下:
解釋
在上述示例程序中,我們首先創建了一個名為“Welcome”的字符串對象。接著,我們計算了字符串的長度并將該值存儲在一個名為“n”的int變量中。最后,我們打印了“n-1”位置的字符作為輸出,找到了字符串的最后一個字符“e”。
總結
在這篇文章中,我們學習了 Java 編程中的 String 類,了解了如何創建字符串以及如何通過不同的示例程序獲取字符串的最后一個字符。
若你想提升Java技能,可關注我們的Java培訓課程。