首页 > 试题广场 >

英文9键输出

[编程题]英文9键输出
手机英文9键说明如下
1:@!./
2:abc
3:def
4:ghi
5:  jkl
6:mno
7:pqrs
8:tuv
9:wxyz 
数字键输入第一个字母点击一次,第二个字母连续点击两次,以此类推
统计输入字符串(英文小写,包含英文26个字母和@!./标点符号),如果通过手机9键输入,各个数字键的点击次数

示例1

输入

"abcdtyz@!."

输出

[[1,6],[2,6],[3,1],[8,1],[9,7]]

备注:
数字键按从小到大输出
import java.util.HashMap; import java.util.Map; import java.util.Scanner;  /**  * @Authorlihang  */ public class NineKeyInputCount {  public static void main(String[] args) {  Scanner scanner = new Scanner(System.in);  System.out.print("Enter the input string: ");  String inputString = scanner.next().toLowerCase();   Map<Character, Integer> keyCounts = new HashMap<>();  keyCounts.put('1', 0);  keyCounts.put('2', 0);  keyCounts.put('3', 0);  keyCounts.put('4', 0);  keyCounts.put('5', 0);  keyCounts.put('6', 0);  keyCounts.put('7', 0);  keyCounts.put('8', 0);  keyCounts.put('9', 0);   Map<Character, String> keyMapping = new HashMap<>();  keyMapping.put('1', "@!./");  keyMapping.put('2', "abc");  keyMapping.put('3', "def");  keyMapping.put('4', "ghi");  keyMapping.put('5', "jkl");  keyMapping.put('6', "mno");  keyMapping.put('7', "pqrs");  keyMapping.put('8', "tuv");  keyMapping.put('9', "wxyz");   for (char ch : inputString.toCharArray()) {  for (char digit : keyMapping.keySet()) {  String letters = keyMapping.get(digit);  if (letters.contains(Character.toString(ch))) {  int keyCount = keyCounts.get(digit);  int letterIndex = letters.indexOf(ch);  keyCounts.put(digit, keyCount + letterIndex + 1);  break;  }  }  }   for (char digit : keyCounts.keySet()) {  int count = keyCounts.get(digit);  System.out.println("Key " + digit + ": " + count + " times");  }  } }
发表于 2023-10-26 20:48:42 回复(0)