键盘布局库,用于查找给定输入键的相邻键(最好是java)[关闭]

2023-12-31

有谁知道一个库(最好是java)可以为我提供US_ENGLISH标准键盘的相邻键输入?

例如。如果我输入字符“d”,我应该返回以下字符:[w,e,r,s,f,x,c,v]。

或者,网格操作 api 也可以工作(这样我就可以使用 qwerty 键盘布局实例化网格并使用它来查找我的邻居)。

注 1:我使用“字符”和“键”这两个词作为同义词来指代字符。

注 2:我知道我可以硬编码一个方法来将 50 个左右的主键映射到它们的邻居。我正在寻找更好的解决方案。

谢谢。


我同意 BlueNovember 的观点,但如果你想要一个更“数学”的解决方案,请检查这个。首先你创建一个字符网格,然后返回所有与传递的键距离小于 2 的字符......有点无用,但这是一个很好的练习:)

public class Test {

    static String chars = "qwertyuiopasdfghjkl;zxcvbnm,.";

    public static void main(String[] args) {
        System.out.println(getNeighboringKeys('f'));
        System.out.println(getNeighboringKeys('u'));
        System.out.println(getNeighboringKeys('m'));
        System.out.println(getNeighboringKeys('q'));
    }

    public static String getNeighboringKeys(char key) {
        StringBuffer result = new StringBuffer();
        for (char c : chars.toCharArray()) {
            if (c!=key && distance(c,key)<2) {
                result.append(c);
            }
        }
        return result.toString();
    }

    public static double distance(char c1, char c2) {
        return Math.sqrt(Math.pow(colOf(c2)-colOf(c1),2)+Math.pow(rowOf(c2)-rowOf(c1),2));
    }

    public static int rowOf(char c) {
        return chars.indexOf(c) / 10;
    }

    public static int colOf(char c) {
        return chars.indexOf(c) % 10;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

键盘布局库,用于查找给定输入键的相邻键(最好是java)[关闭] 的相关文章

随机推荐