为什么击键数字不能使用小写字母?

Why aren't keystroke numbers working with lowercase alphabet?

我对击键还是比较陌生。当我将字符转换为整数然后尝试使用机器人按键时,它不会打印出小写字母,而是将大写字母打印为小写字母。

我通过将输入更改为全大写(使用 toUpperCase)尝试了 运行 代码,这有效,但代码没有打印出大写字母。

import java.awt.Robot;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;

public class typeWriter {
    public static void main(String[] args) throws InterruptedException {
        Scanner scan=new Scanner(System.in);
        try {
            String text6 = scan.nextLine();
            String text = text6.toUpperCase();
            char[] text1 = text.toCharArray();
            Robot robot = new Robot();
            int[] Charkey= new int[text1.length];
            TimeUnit.SECONDS.sleep(scan.nextInt());
            for(int i = 0; i<text1.length; i++) {
                Charkey[i]=(int) text1[i];
            }
            for(int y = 0; y<text1.length; y++) {
                robot.keyPress(Charkey[y]);
                robot.keyRelease(Charkey[y]);
            }
        } catch (AWTException e) {

        }

    }
}

当我输入 "Hello" 时,我希望它输入 "Hello",但它却输入 "h5/"(没有 toUpperCase 修饰符)。如果我将字符串更改为全部大写,它会打印出正确的单词,但全部为小写。我该怎么办?

我有点找到答案了。对于那些有同样问题的人,这可能不是最好也不是最有效的方法,但我制作了一个由原始值组成的第二个数组,并在 for 循环中我添加了一个 if 语句,说明原始集合是否为此特定索引中的值介于 65 和 90 之间,它将刺激 shift 键按下和实际按键。