解题思路:在这个题目中,我们了解到需要输出最多的字符,所以我建立一个数组,初始化为0,当有该字符的时候+1。我们在进行一个遍历输出
注意事项:
“A”=65
在建立统计数组时候,可以将arr[0],从arr[1]开始,这样可以将下标对应
注意数组越界问题
参考代码:
import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { // 创建一个扫描器对象,用于接收用户输入的字符串 Scanner sc = new Scanner(System.in); // 读取用户输入的字符串 String s = sc.next(); // 创建一个长度为26的整型数组,用于存储每个字母出现的次数 int[] arr = new int[26]; // 将数组的第一个元素初始化为0 arr[0] = 0; // 遍历输入的字符串 for (int i = 0; i < s.length(); i++) { // 计算当前字符与'A'的差值,得到一个标志位 int flag = 0; flag = (s.charAt(i) - 'A'); // 根据标志位更新对应字母出现次数的计数 arr[flag] += 1; } // 创建一个新的整型数组,用于存储原数组的副本 int[] newArr = new int[arr.length]; // 将原数组的元素复制到新数组中 for (int i = 0; i < newArr.length; i++) { newArr[i] = arr[i]; } // 对新数组进行排序 Arrays.sort(newArr); // 初始化一个变量num,用于存储出现次数最多的字母的索引 int num = -1; // 遍历原数组,找到出现次数最多的字母的索引 int j = 0; for (j = 0; j < arr.length; j++) { if (arr[j] == newArr[arr.length - 1]) { num = j; // 输出出现次数最多的字母 System.out.print((char) (65 + num)); } } // 换行 System.out.println(); } }
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题8.5 (C语言代码)浏览:956 |
C语言程序设计教程(第三版)课后习题10.2 (C语言代码)浏览:564 |
简单的a+b (C语言代码)浏览:878 |
简单的a+b (C语言代码)浏览:457 |
DNA (C语言代码)浏览:440 |
输入输出格式练习 (C语言代码)浏览:773 |
找出最长的字符串来 (C语言代码)浏览:1840 |
C语言程序设计教程(第三版)课后习题10.1 (C语言代码)浏览:826 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:639 |
C语言程序设计教程(第三版)课后习题10.1 (C++代码)浏览:529 |