WERTYU问题是ACM经典问题,假设键盘输入字母时每个字母都后移了一位(或N位),怎么把输入者要输入的真正字符串恢复过来的问题。
如给定一个输入O S, GOMR YPFSU/,需要返回输出:I AM FINE TODAY.,最容易想到的解法是使用switch,但这样写太麻烦,键盘上几十个字符需要判断几十次,因此,可以采用后移数组下标的方式。
import java.util.Scanner; public class WERTYU { private static String keyString = "`1234567890-=QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"; public static void main(String[] args) { Scanner in = new Scanner(System.in); String inputString = in.nextLine(); char[] inputChars = inputString.toCharArray(); char[] keyChars = keyString.toCharArray(); for(int i = 0; i<inputChars.length; i++){ char inputChar = inputChars[i]; if(inputChar != ' '){ inputChars[i] = keyChars[keyString.indexOf(inputChars[i]) - 1]; } } in.close(); System.out.println(String.valueOf(inputChars)); } }
本文为风林火山博客原创,转载请注明出处:www.flcoder.com