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 【输出】
    不要因为怕被玫瑰的刺伤到你,就不敢去摘玫瑰。
  • 相关阅读:
    ClickOnce發布經驗
    reporting Server組件不全引起的致命錯誤
    異步調用
    Usercontrol Hosted in IE
    MATLAB命令大全(转载)
    一种保护眼睛的好方法
    关于oracle自动编号
    An Algorithm Summary of Programming Collective Intelligence (1)
    An Algorithm Summary of Programming Collective Intelligence (3)
    An Algorithm Summary of Programming Collective Intelligence (4)
  • 原文地址:https://www.cnblogs.com/gccwelcome/p/12786537.html
Copyright © 2011-2022 走看看