首页 > 解决方案 > 编译器如何读取这个:someString.indexOf(someOtherString.charAt(0))?

问题描述

也许我的困惑源于对 indexOf 类如何工作的不清楚的理解。我知道 someString.indexOf(3) 将返回字符串 someString 中索引 3 的字母。我也明白 someOtherString 是怎么回事。charAt(3) 有效。但是如果你像 someString.indexOf(someOtherString.charAt(5)) 那样组合它们,会发生什么?

标签: java

解决方案


我知道这someString.indexOf(3)将返回字符串中索引 3 的字母someString

不,它没有。它返回二进制值为 3 in 的字符的索引someString。这个表达式很可能是一个编程错误,因为您通常不会chars作为int常量传递。

我也明白 someOtherString 是怎么回事。charAt(3) 有效。

让我们来看看。它返回索引 3 处的字符(即第四个字符,因为从零开始的索引)。

但是如果你把它们结合起来someString.indexOf(someOtherString.charAt(5))

这不是将它们结合起来。这完全是另一种表达方式。这里没有任何类似的东西someString.indexOf(3)

怎么了?

它返回someString索引 3 in 处字符的索引 in someOtherString。很明显,charAt()必须首先评估该部分。


推荐阅读