原文: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 的字符,分别是 Hold

然后我们尝试打印和连接这些字符: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() 方法时,会得到错误响应的一些情况。

祝你编程愉快!