char数组中的indexof返回-1,即使该char存在

时间:2015-03-11 09:10:25

标签: java

可以解释为什么这段代码片段的计算结果为-1?

我除了它是0,因为它是'1'的索引

Arrays.asList("1234".toCharArray()).indexOf((char)'1');

我也尝试过:

Arrays.asList("1234".toCharArray()).indexOf('1');

Arrays.asList("1234".toCharArray()).indexOf(49);

1 个答案:

答案 0 :(得分:5)

"1234".indexOf('1')。无需转换为数组,然后转换为List。

当您在一个基元数组(在您的情况下为char[])上调用Arrays.toList时,您的尝试不起作用的原因,它产生了一个List,其单个元素就是数组本身,所以列表不包含' 1'。