java List数组存储30个字母,键盘上输入字母在控制台中出现的次数,一次都没有输为-1
时间: 2023-05-18 14:06:24 浏览: 46
可以使用HashMap来实现,将每个字母作为key,出现的次数作为value。具体实现代码如下:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Character> list = new ArrayList<>();
for (int i = 0; i < 30; i++) {
list.add(scanner.next().charAt(0));
}
Map<Character, Integer> map = new HashMap<>();
for (char c : list) {
map.put(c, map.getOrDefault(c, 0) + 1);
}
char ch = scanner.next().charAt(0);
int count = map.getOrDefault(ch, -1);
System.out.println(count);
}
}
当输入的字母不在List中时,map.getOrDefault(ch, -1)会返回-1。
相关问题
java 已知有一个List数组存储30个字母,键盘上输入字母在控制台中出现的次数,一次都没有输为-1
这是一个比较简单的问题,可以通过遍历 List 数组并使用 HashMap 来统计每个字母出现的次数。以下是示例代码:
```
import java.util.*;
public class Main {
public static void main(String[] args) {
List<Character> letters = new ArrayList<>();
// 假设 List 数组中已经存储了 30 个字母
// 这里只是为了演示,手动添加了一些字母
letters.add('a');
letters.add('b');
letters.add('c');
letters.add('d');
letters.add('e');
letters.add('f');
letters.add('g');
letters.add('h');
letters.add('i');
letters.add('j');
letters.add('k');
letters.add('l');
letters.add('m');
letters.add('n');
letters.add('o');
letters.add('p');
letters.add('q');
letters.add('r');
letters.add('s');
letters.add('t');
letters.add('u');
letters.add('v');
letters.add('w');
letters.add('x');
letters.add('y');
letters.add('z');
letters.add('a');
letters.add('b');
letters.add('c');
letters.add('d');
letters.add('e');
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个字母:");
String input = scanner.nextLine();
char c = input.charAt(0);
Map<Character, Integer> countMap = new HashMap<>();
for (char letter : letters) {
if (countMap.containsKey(letter)) {
countMap.put(letter, countMap.get(letter) + 1);
} else {
countMap.put(letter, 1);
}
}
if (countMap.containsKey(c)) {
System.out.println("字母 " + c + " 出现了 " + countMap.get(c) + " 次");
} else {
System.out.println("字母 " + c + " 没有出现过");
}
}
}
```
如果输入的字母没有出现过,程序会输出 "字母 X 没有出现过",其中 X 是输入的字母。如果输入的是非字母字符,程序会抛出异常。
java list存储30个字母,键盘上输入字母在控制台中出现的次数,一次都没有输为-1
以下是 Java 代码实现:
```java
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
List<Character> list = new ArrayList<>();
for (int i = 0; i < 30; i++) {
list.add(scanner.next().charAt(0));
}
int[] count = new int[26];
Arrays.fill(count, 0);
for (int i = 0; i < 26; i++) {
char c = (char) ('a' + i);
if (list.contains(c)) {
System.out.print(c + ": ");
int cnt = 0;
for (int j = 0; j < 30; j++) {
if (list.get(j) == c) {
cnt++;
}
}
count[i] = cnt;
System.out.println(cnt);
}
}
boolean flag = false;
for (int i = 0; i < 26; i++) {
if (count[i] == 0) {
flag = true;
break;
}
}
if (flag) {
System.out.println("-1");
}
}
}
```
输入 30 个字母后,程序会统计每个字母在输入中出现的次数,并输出到控制台中。如果有任何一个字母都没有输入,则输出 -1。