【发布时间】:2019-03-25 17:00:28
【问题描述】:
我被一些有趣的任务困住了。我有 3 个字符串(hello、heavy 和 word)。需要计算每个世界的总和并打印最大的世界和总和。用于计算 - a = 1,z = 26。所以 hello = 50,heavy = 61 & word = 60。最大的字符串是“heavy”,我需要像“heavy,61”一样打印它。我找到了从一个字符串计算字符的代码:
String[] words = {"hello", "heavy", "word"};
String str = "abc";
int sum = 0;
for (char ch : str.toCharArray()) {
if (ch >= 'a' && ch <= 'z') {
sum += 1 + ch - 'a';
}
}
System.out.printf("%s %d%n", str, sum); //the result is abc, 6
这段代码的结果是: abc, 6
问题是,如何计算所有单词以及如何打印最大的单词?我可以为每个单词写总和,然后再计算,但在我的任务中,单词是来自控制台的随机数。 扫描没问题。
编辑:所有单词都是小写字母。
【问题讨论】:
-
a和A的值会一样吗? -
您应该创建一个为参数执行此操作的方法。然后循环调用该方法。
-
所有单词都是小写a-z
-
提示:小写 a-z 称为小写 Basic Latin 字母。它们具有只需要一个 UTF-16 代码单元进行编码和在 UTF-16 中连续的特性。 Java
char是一个 UTF-16 代码单元。 (这使您的映射变得简单1 + ch - 'a'。)UTF-16 是Unicode 字符集的几种字符编码之一。
标签: java arrays string loops char