gpt4 book ai didi

java - Indexof() 参数类型

转载 作者:行者123 更新时间:2023-12-01 23:21:32 33 4
gpt4 key购买 nike

示例1:indexOf(int ch)//例如:s.indexOf('y');示例2:replace(char 原始, char 替换)

在这两个示例中,参数都需要 char 类型。尽管在示例 1 中提到它为 int ,但最后它期望带有单引号的参数,即字符。它可以直接像 char ch 一样。为什么会有int类型的存在?他们可以像示例 2 一样指定它。

这是否有任何内部原因。为什么语法在某些情况下有所不同。这样做一定有理由。请解释一下这个...

最佳答案

您需要了解符号的 char 数据类型和代码点之间的区别。

char 只是一个无符号的 16 位值。但是代码点是一个代表一个unicode字符的数字。代码点使用 UTF-16 进行编码编码时,它们可以由一个或两个(所谓的代理对)16 位值表示。 java 中的字符串使用该编码,因此每个字符可以由一个或两个 char 值表示。

在绝大多数情况下,代码点仅使用一个char,其值等于代码点,因此,许多程序员只是忽略了这种差异。但 indexOf 方法可以理解它,如果提供了高于 0xFFFF 的数字并且它是有效的代码点,则该方法将查找两个代理值的序列。

请注意,该方法的结果,因为字符串和 .length() 中的所有偏移量都在 chars 中,而不是在实际代码点中。但是,如上所述,在大多数情况下您可以忽略差异。

参见indexOf documenation

关于java - Indexof() 参数类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58326500/

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