1

我被指示编写一个对字符串的 Unicode 值求和的应用程序,而不使用任何 Java API,除了.length.

所以基本上我必须在不使用方法的情况下编写下面的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;
}
4

1 回答 1

-1

这对我来说听起来像是家庭作业,所以我不会给你代码,而是给你一些提示。

  1. charJava 中的 s 基于 Unicode UTF-16 代码。Achar为 16 位长。
  2. short也是16位,int是32位。
  3. 您可以简单地在原始类型之间进行转换,假设它们的长度相同,或者您要转换的东西比您要转换的东西以位为单位)。
  4. 一些 Unicode 字符不适合单个 Java char。发生这种情况时,您需要将两个连续char的(16 位)值组合成一个int(32 位)。(注意:有关如何判断您是否遇到其中一种情况的信息,请参阅Character该类的文档——它与字符代码所在的数字范围有关)。char在这些情况下您将获得的s 称为代理(在链接文档中指导您的有用提示)。
于 2013-10-23T17:01:05.217 回答