The Robot class is not very smart. The combination of key codes you need to use is keyboard dependent. You can't always just use the key code of the character you want when a shift is also required. You need to use the key code of the character of the key you actually press. For example on my keyboard I would use:
Next I changed your do type methods so that the key events are generated in the proper order: