You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Scanner输入,如何修改Java代码统计数组中每个元素的字符个数并输出结果

解决方法:输出数组每个元素的字符个数

嘿,这事儿不难,我帮你调整一下代码就行!你原来的逻辑是把整个数组转成字符串后统计所有字母的总数,现在要改成逐个计算每个字符串元素的长度,直接用字符串的.length()方法就很方便,比你原来遍历字符判断的方式更简洁准确。

修改思路:

  • 删掉把数组转成字符串的多余步骤,直接遍历你的myArray字符串数组
  • 创建一个和原数组长度一致的int数组,用来存储每个元素的字符数
  • 对每个字符串元素调用.length()获取长度,存入新数组
  • 最后用Arrays.toString()把这个int数组打印出来,就能得到[3, 4]这样的结果

修改后的完整代码:

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

public class Main {
    public static void main(String[] args) { 
        Scanner s = new Scanner(System.in); 
        System.out.println("Enter the length of the array:"); 
        int length = s.nextInt(); 
        String[] myArray = new String[length]; 
        // 新增一个int数组存储每个元素的字符数
        int[] charCounts = new int[length];
        int allChar = 0; 

        System.out.println("Enter the elements of the array:"); 
        for (int i = 0; i < length; i++) { 
            myArray[i] = s.next(); 
            // 直接获取当前字符串的长度并存入数组
            charCounts[i] = myArray[i].length();
            // 如果还需要统计总字符数,顺便累加
            allChar += charCounts[i];
        } 

        System.out.println("Original Array: " + Arrays.toString(myArray)); 
        // 打印每个元素的字符数
        System.out.println("Character count per element: " + Arrays.toString(charCounts)); 
        // 保留总字符数的输出(可选,如果你还需要的话)
        System.out.println("Total Characters: " + allChar); 
    }
}

关键说明:

  • myArray[i].length():字符串的这个方法会直接返回它的字符总数,完全符合你的需求,不需要再逐个判断是否是字母(当然如果你的输入可能包含非字母字符,这个逻辑也没问题,因为它统计的是所有字符数)
  • 把字符数的计算放到输入元素的循环里,一次循环完成赋值和统计,效率更高
  • 用Arrays.toString(charCounts)可以直接把int数组格式化成[3, 4]这样的字符串,不用自己拼接

测试一下,输入长度2,然后输入Joe和Jane,就能得到:

Enter the length of the array:
2
Enter the elements of the array:
Joe
Jane
Original Array: [Joe, Jane]
Character count per element: [3, 4]
Total Characters: 7

完美符合你的要求!

内容的提问来源于stack exchange,提问作者bindesgeci

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 14:02:47