【问题标题】:How do find the sum of an ascii array?如何找到ascii数组的总和?
【发布时间】:2025-12-27 09:15:06
【问题描述】:

我是 java 新手(2 周),我正在尝试将输入的字符串转换为 ascii 代码并尝试打印总和。

我尝试过使用 IntStream.of(AsciiArray).sum 但由于它是字符串而不是 int 它不起作用(可以理解)

import java.util.Arrays;
import java.util.Scanner;


public class Strings{

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("Enter a 5 letter word (all lower case): ");
        String word = input.nextLine(); 
        int length = word.length();
        byte[] bytes = word.getBytes(); 
        String AsciiArray = Arrays.toString(bytes);

        System.out.println("the ascii sum is" + AsciiArray);
    }

}

我正在尝试做的示例: "输入一个 5 个字母的单词(全部小写):"

你好

ascii 和是 532

我得到了什么:

"输入一个5个字母的单词(全部小写):"

你好

ascii 和是 [104, 101, 108, 108, 111]

【问题讨论】:

标签: java arrays string ascii


【解决方案1】:

求所有字符之和的更简单的解决方案:

System.out.println("the ascii sum is " + word.chars().sum());

【讨论】:

  • 这当然是 UTF-16 代码单元的总和,这在 Java 中更有意义,因为 Java 的文本数据类型不使用 ASCII。
【解决方案2】:

你已经得到了输入单词的每一个 ASCII 值,但是忘记总结了。

例如:

byte[] bytes = word.getBytes(); 
int sum = 0;
for (int i = 0; i < length; i++) {
    sum += bytes[i];
}
System.out.println("the ascii sum is " + sum);

【讨论】: