像手机输入法一样你第一个数字假设是对应abc, 那么你首先扫描你的英文数组, 抛弃那些非abc打头的, 如此类推下去, 

解决方案 »

  1.   

    定义这样一个数组:
    char[][] charSet={null,null,
                     {'a','b','c'},
                     {'d','e','f'},
                     {'g','h','i'},
                     {'j','k','l'},
                     {'m','n','o'},
                     {'p','q','r','s'},
                     {'t','u','v'},
                     {'w','x','y','z'}
                               };
    当你第i(1<=i<=4)个输入的数是n(2<=n<=9)时,你就用charSet[n]中的字符与上一次的结果容器中的字符串的第i个字符比较,如果没有匹配的,就把相应的字符串从结果容器中删除掉。从面形成这一次的结果容器。
    i=1时,结果容器中的字符串,就是你定义的那些字符串。四次输入后,结果容器中剩下的字符串,就是结果。
      

  2.   

    为什么不用hashMap,虽然效率上合数组比可能会差些,但是方便维护,更加符合设计模式