Q863017854
2016-07-12 03:08
采纳率: 85.7%
浏览 1.7k
已采纳

java 如何把String类型中的字符都替换成KeyEvent.KEYCODE_

想要把一个String字符串中的每个字符都替换成KeyEvent.KEYCODE_

尝试了下面的方法 但是switch不能带string 切换成JDK1.7整个出错,Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

 switch (sStr)
        {
        case "a": return KeyEvent.KEYCODE_A;
        case "b": return KeyEvent.KEYCODE_B;
        case "c": return KeyEvent.KEYCODE_C;
        case "d": return KeyEvent.KEYCODE_D;
        case "e": return KeyEvent.KEYCODE_E;
        case "f": return KeyEvent.KEYCODE_F;
        case "g": return KeyEvent.KEYCODE_G;
        case "h": return KeyEvent.KEYCODE_H;
        case "i": return KeyEvent.KEYCODE_I;
        case "j": return KeyEvent.KEYCODE_J;
        case "k": return KeyEvent.KEYCODE_K;
        case "l": return KeyEvent.KEYCODE_L;
        case "m": return KeyEvent.KEYCODE_M;
        case "n": return KeyEvent.KEYCODE_N;

想用java的replaceall 结果只能 (string,string) KeyEvent.KEYCODE_属于int

求大神指教啊 急 在线等

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • little_how 2016-07-12 03:38
    已采纳

    可以用反射来获取:
    如:
    Field field = KeyEvent.class.getDeclaredField("KEYCODE_" + sStr.toUpperCase);
    return field.get(null);

    这个可以办到你的要求,如果想要优化这个反射的话,可以参考的我博客
    http://blog.csdn.net/w172087242/article/details/51648796

    如果有帮助,希望结帖

    已采纳该答案
    打赏 评论

相关推荐 更多相似问题