我被指示编写一个对字符串的 Unicode 值求和的应用程序,不使用除 .length
之外的任何 Java API。
所以基本上我必须编写下面的方法而不使用 codePointAt
方法。不过,我可以编写自己的实用程序,但我只是不知道如何做到这一点。
有人可以帮我吗?
public static int addChars(String s) {
int sum = 0;
int charCount = s.length();
for(int i=0;i<charCount;i++){
sum += s.codePointAt(i);
}
return sum;
}
最佳答案
这对我来说听起来像是家庭作业,所以我不会给你代码,而是给你一些提示。
-
Java 中的
char
基于 Unicode UTF-16 代码。char
的长度为 16 位。short
也是 16 位,int
是 32 位。- 您可以在基本类型之间进行简单的转换,假设它们的长度相同,或者您要转换的内容比您要转换的内容更长(以位为单位)>来自。
- 某些 Unicode 字符不适合单个 Java
char
。发生这种情况时,您需要将两个连续的char
(16 位)值合并为一个int
(32 位)。 (注意:请参阅Character
class 上的文档,了解如何判断您是否遇到其中一种情况 - 它与字符代码所在的数字范围有关)。在这些情况下您将获得的char
称为代理(在链接文档中指导您的有用提示)。
关于java - 不使用 API 函数对 String 的 unicode 值求和(String.length 除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19546659/