Q1:英文字母
题目:
思路:
A的ASCII码是65,那么我要输入1,就输出A,我们直接加64即可,然后把int转成char
代码:
public class Question1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt() + 64;
char x = (char)n;
System.out.println(x);
}
}
Q2:单词分析
题目:
思路:
a的ASCII码是97,z的是122,为了方便我们之间创建一个长度123的int数组,其中strs[97]-strs[122],分别保存a到z出现的次数。写一个getMaxIndex()函数,获取出现最多字母对应的ASCII码,因为这里如果有两个相同出现次数最多,就输出字典序小的,那么在判断谁更大的时候,要注意,代码上面注释了。最后输出即可。
代码:
import java.util.Scanner;
public class Question2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
int[] strs = new int[123];
for (int i = 0; i < str.length(); i++) {
char x = str.charAt(i);
strs[x]++;
}
int maxIndex = getMaxIndex(strs);
System.out.println((char) maxIndex);
System.out.println(strs[maxIndex]);
}
public static int getMaxIndex(int[] strs ){
int maxIndex = 97;
for (int i = 97; i <= 122 ; i++) {
if(strs[i] > strs[maxIndex]){//不要写>= ,因为要输出字典序小的
maxIndex = i;
}
}
return maxIndex;
}
}