原文:charAt() in Java – How to Use the Java charAt() Method,作者:Ihechikara Vincent Abba
Java 中的 charAt()
方法返回字符串中某个字符在给定或指定索引处的 char
值。
在这篇文章中,我们将看到如何使用 charAt()
方法,首先是它的语法,然后是一些使用示例。
如何使用 Java 的 charAt() 方法
这是 charAt()
方法的语法:
public char charAt(int index)
注意,使用 charAt()
方法从字符串返回的字符具有 char
数据类型。我们将在文章的后面看到这对返回值的连接有何影响。
现在让我们看看一些例子。
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
System.out.println(greetings.charAt(0));
// H
}
}
在上面的代码中,我们的字符串——存储在一个叫作 greetings
的变量中——写着 “Hello World”。我们使用 charAt()
方法来获取索引为 0
的字符,即 H
。
第一个字符的索引总是 0
,第二个索引是 1
,以此类推。子字符串之间的空格也算作一个索引。
在下一个例子中,我们将看到当我们试图将返回的不同字符连接起来时会发生什么。连接是指将两个或多个值连接在一起(在大多数情况下,这个术语用于连接字符串中的字符或子串)。
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
char ch1 = greetings.charAt(0); // H
char ch2 = greetings.charAt(4); // o
char ch3 = greetings.charAt(9); // l
char ch4 = greetings.charAt(10); // d
System.out.println(ch1 + ch2 + ch3 + ch4);
// 391
}
}
使用 charAt()
方法,我们得到了索引为 0、4、9 和 10 的字符,分别是 H
、o
、l
和 d
。
然后我们尝试打印和连接这些字符:System.out.println(ch1 + ch2 + ch3 + ch4);
。
但是我们没有得到返回的 Hold
,而是得到了 391
。这是因为返回的值不再是字符串,而是数据类型为 char
。因此,当我们连接它们时,解释器会添加它们的 ASCII 值。
H
的 ASCII 值为 72,o
的值 为111,l
的值为 108,d
的值为 100。当我们把它们加在一起时,我们得到 391,这是在上一个例子中返回的。
StringIndexOutOfBoundsException 错误
当我们传入的索引数超过了字符串中的字符数,我们就会在控制台中得到 StringIndexOutOfBoundsException 错误。
这个错误也适用于使用负数索引,这在 Java 中是不支持的。在像 Python 这样支持负数索引的编程语言中,传入 -1 会给你一个数据集的最后一个字符或值,类似于 0 总是返回第一个字符的情况。
下面是一个例子:
public class Main {
public static void main(String[] args) {
String greetings = "Hello World";
char ch1 = greetings.charAt(20);
System.out.println(ch1);
/* Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 20
*/
}
}
在上面的代码中,我们传入了一个 20 的索引:char ch1 = greetings.charAt(20);
这超过了 greetings
变量的字符数——所以我们得到了一个错误。你可以在上面的代码块中看到错误信息的注释。
同样,如果我们像这样传入一个负值:char ch1 = greetings.charAt(-1);
,会得到一个类似的错误。
总结
在这篇文章中,我们学习了如何在 Java 中使用 charAt()
方法。我们看到了如何根据索引号返回字符串中的字符,以及当我们把这些字符连接起来时会发生什么。
最后,我们谈到了在 Java 中使用 charAt()
方法时,会得到错误响应的一些情况。
祝你编程愉快!