java - 编译器如何读取这个:someString.indexOf(someOtherString.charAt(0))?
问题描述
也许我的困惑源于对 indexOf 类如何工作的不清楚的理解。我知道 someString.indexOf(3) 将返回字符串 someString 中索引 3 的字母。我也明白 someOtherString 是怎么回事。charAt(3) 有效。但是如果你像 someString.indexOf(someOtherString.charAt(5)) 那样组合它们,会发生什么?
解决方案
我知道这
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()
必须首先评估该部分。
推荐阅读
- dynamics-crm - 在 Dynamics CRM 中查询以查找相关帐户的订单产品
- http - 响应后的异步工作
- spring-mvc - spring mvc:当请求内容类型为 x-www-form-urlencoded 时绑定嵌套请求参数
- reactjs - 在静态网站上使用 ReactJS
- odoo-11 - odoo11 :: wkhtmltopdf 无法识别 css
- android - 使用 Google 服务 v15 部署应用程序时出错
- grails - 没有这样的属性:类的属性名称:org.grails.orm.hibernate.cfg.HibernatePersistentEntity
- jquery - 根据在 Jquery 数据表的“显示下拉菜单”中选择的页面大小显示数据
- java - 在端口/适配器(洋葱)架构中,如果应用程序中没有持久性,我可以拥有域吗?
- mysql - 重置mysql密码结果:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)