电话拨号键输入数字能搜索出相关的电话号码以及联系人名字,其中名字看起来又还能按中英文搜索,其实本质上都是按数字在进行对比。
如将字母转换成数字方法:
public char getNumFromAlpha(charalpha) {
switch (alpha){
case 'a':
case 'b':
case 'c':
case 'A':
case 'B':
case 'C':
return '2';
case 'd':
case 'e':
case 'f':
case 'D':
case 'E':
case 'F':
return '3';
case 'g':
case 'h':
case 'i':
case 'G':
case 'H':
case 'I':
return '4';
case 'j':
case 'k':
case 'l':
case 'J':
case 'K':
case 'L':
return '5';
case 'm':
case 'n':
case 'o':
case 'M':
case 'N':
case 'O':
return '6';
case 'p':
case 'q':
case 'r':
case 's':
case 'P':
case 'Q':
case 'R':
case 'S':
return '7';
case 't':
case 'u':
case 'v':
case 'T':
case 'U':
case 'V':
return '8';
case 'w':
case 'x':
case 'y':
case 'z':
case 'W':
case 'X':
case 'Y':
case 'Z':
return '9';
default:
return alpha;
}
}
通过以上方法能很直观的看到所有字母都有对应的一个数字,如果是汉字通过拼音转换包转换成拼音,然后再通过字母转换成数字,最后就可以用数字来进行比对搜索了。