zoukankan      html  css  js  c++  java
  • 九宫格输入法

    package com.cn;

    import java.util.Scanner;

    /**
    * 7-9 九宫格输入法 (15 分)
    * 假设有九宫格输入法键盘布局如下:
    * [ 1,.?! ] [ 2ABC ] [ 3DEF ]
    * [ 4GHI ] [ 5JKL ] [ 6MNO ]
    * [ 7PQRS ] [ 8TUV ] [ 9WXYZ ]
    * [ 0空 ]
    * <p>
    * 注意:中括号[ ]仅为了表示键盘的分隔,不是输入字符。每个中括号中,位于首位的数字字符即是键盘的按键,按一下即可输入该数字字符。
    * 多次按同一个键,则输入的字符依次循环轮流,例如按两次3,则输入D;按5次7,则输入S;按6次2,则输入A。按键0的输入组合是0和空格字符,即按两次0输入空格。
    * 你需要对于给定的按键组合,给出该组合对应的文本。
    * <p>
    * 输入格式:
    * <p>
    * 输入在一行中给出数个字符的按键组合(例如 999 表示按3次9),每个字符的按键组合之间用空格间隔,最后一个输入法组合之后以换行结束。
    * 输入数据至少包括一个字符的按键组合,且输入总长度不超过500个字符
    * <p>
    * 输出格式:
    * 在一行中输出该按键组合对应的文本。
    * <p>
    * <p>
    * 输入样例:
    * 22 5555 22 666 00 88 888 7777 4444 666 44
    * <p>
    * 输出样例:
    * ALAN TURING
    *
    * @author gcc
    */

    public class NineKeyBoard {
    public static char[][] keyboards = {
    {'0',' '},
    {'1', ',', '.', '?', '!'},
    {'2', 'A', 'B', 'C'},
    {'3', 'D', 'E', 'F'},
    {'4', 'G', 'H', 'I'},
    {'5', 'J', 'K', 'L'},
    {'6', 'M', 'N', 'O'},
    {'7', 'P', 'Q', 'R', 'S'},
    {'8', 'T', 'U', 'V'},
    {'9', 'X', 'X', 'Y', 'Z'}};
    public static char getCharByString(String str){

    char ch ;
    int index = Integer.valueOf(str.charAt(0)+"");

    System.out.println(index);

    if (str.length() <=keyboards[index].length) {

    ch =keyboards[index][str.length()-1];

    System.out.println(ch);
    } else {
    ch = keyboards[index][
    (str.length() - keyboards[index].length) % (keyboards[index].length - 1)];
    }
    return ch;
    }
    public static String numToStr(String input) {
    char[] result = null;
    if (input.length() >= 1 || input.length() < 500) {
    String[] temp = input.split(" ");
    result = new char[temp.length];
    for (int i = 0; i < temp.length; i++) {
    result[i] = getCharByString(temp[i]);
    }
    }
    return String.valueOf(result);
    }

    public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    String str = scanner.nextLine();
    String rs = numToStr(str);
    System.out.println(rs);
    }
    }


    运行结果如下:
    22 5555 22 666 00 88 888 7777 4444 666 44 【注释:输入】
    2
    A
    5
    L
    2
    A
    6
    N
    0
     
    8
    T
    8
    U
    7
    R
    4
    I
    6
    N
    4
    G
    ALAN TURING 【输出】
    不要因为怕被玫瑰的刺伤到你,就不敢去摘玫瑰。
  • 相关阅读:
    数据结构串的运算算法
    java文件读取
    我的博客园
    示例 Edit 关闭键盘再显示
    用 Inkscape 做 SVG 给 TPath
    FMX 讯息框 FrameDialog
    让 ListView 在 Android 可回弹
    修正 ColorPanel 选色缓慢问题
    Eclipse Tomcat Project报错:HTTP Status 404错误
    gradle web项目启动报错: java.lang.ClassNotFoundException: org.springframework.web.util.IntrospectorCleanupListener
  • 原文地址:https://www.cnblogs.com/gccwelcome/p/12786537.html
Copyright © 2011-2022 走看看