gpt4 book ai didi

Java比较字符串数组上的字符

转载 作者:搜寻专家 更新时间:2023-11-01 01:23:23 25 4
gpt4 key购买 nike

假设我有一个这样的字符串数组:

String[][] fruits = {{"Orange","1"}, {"Apple","2"}, {"Arancia","3"};

如果我这样做:

     for (int i = 0; i < fruits.length;i++){
System.out.println(fruits[i][0].charAt(1));
}

它将打印:

r
p
r

如果我这样做:

     for (int i = 0; i < fruits.length;i++){
Character compare = fruits[i][0].charAt(1);
System.out.println(compare.equals('r'));
}

它将打印:

true
false
true

所以这是我的问题。是否可以在同一行上使用 charAt 和 equals,我的意思是,像这样:

System.out.println((fruits[i][0].charAt(1)).equals("r"));

问候,

蚕 bean

最佳答案

是的,前提是您首先将 charAt() 的结果转换为 Character:

System.out.println(Character.valueOf(fruits[i][0].charAt(1)).equals('r'));

一个更简单的版本是写

System.out.println(fruits[i][0].charAt(1) == 'r');

我个人总是更喜欢后者而不是前者。

您的版本不起作用的原因是 charAt() 返回 char(与 Character 相对),并且 char 是原始类型,没有 equals() 方法。

代码中的另一个错误是在 equals("r") 中使用了双引号。可悲的是,这个会编译并可能导致痛苦的调试 session 。对于以上基于 char 的版本,这将在编译时被捕获。

关于Java比较字符串数组上的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com