JavaRush /Java 博客 /Random-ZH /喝咖啡休息#115。Java 中对对象进行分组的简单方法。charAt() 方法 - 如何在 Java 中使用它

喝咖啡休息#115。Java 中对对象进行分组的简单方法。charAt() 方法 - 如何在 Java 中使用它

已在 Random-ZH 群组中发布

Java 中对对象进行分组的简单方法

来源:Dev.to 在本示例中,我们将学习如何简化包含集合作为值的Map对象的分组。 喝咖啡休息#115。 Java 中对对象进行分组的简单方法。 charAt() 方法 - 如何在 Java 中使用它 - 1例如,我们有一个Map对象,其中键是Integer,值是字符串数组:
Grouper<Integer, String> grouper = new ArrayListGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
结果:
{1=[a, b, c, c], 2=[c]}
我们需要做的就是定义分组策略。例如,已经定义的ArrayListGrouper类使用ArrayList作为其策略。我们总是可以定义一个新的Grouper来使用不同的GroupingStrateg。现在让我们将ArrayList更改为HashSet以使元素唯一:
public class HashSetGrouper<K, V> extends Grouper<K, V> {

    public HashSetGrouper() {
        super(HashSet::new);
    }
}
然后我们测试:
@Test
    public void testHashSetGrouper() {
        Grouper<Integer, String> grouper = new HashSetGrouper<>();
        grouper.put(1, "a");
        grouper.put(1, "b");
        grouper.put(1, "c");
        grouper.put(1, "c");
        grouper.put(2, "c");
        System.out.println(grouper);

    }
结果:
{1=[a, b, c], 2=[c]}
1现在有一个集合,其中值c不重复。示例代码发布在 Github 上

charAt() 方法 - 如何在 Java 中使用它

来源:FreeCodeCamp 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()方法时可能会收到错误响应的一些情况。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION