基于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
相关产品推荐
相关产品推荐

