我从3/4小时开始研究这段代码。现在我觉得如果有人帮助我,我无法修复它。这是UVA 10082.当我输入时总会有一个额外的换行符。这是不可取的。
当我在UVA上运行时...总是说错了答案。但是我在电脑上查了一下,没关系。
import java.util.Scanner;
public class WERTYU {
public static void main(String args[]) {
char keyboard[][] = {
{'`', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '='},
{'Q', 'W', 'E', 'R', 'T', 'Y', 'U', 'I', 'O', 'P', '[', ']', '\\'},
{'A', 'S', 'D', 'F', 'G', 'H', 'J', 'K', 'L', ';', '\''},
{'Z', 'X', 'C', 'V', 'B', 'N', 'M', ',', '.', '/'}
};
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String line = in.nextLine();
char letter[];
letter = line.toCharArray();
for (int i = 0; i < letter.length; i++) {
//if (letter[i] == ' ')System.out.print("");
if (letter[i] == 'Q' || letter[i] == 'A' || letter[i] == 'Z' || letter[i] == '`') {
System.exit(0);
} else {
for (int m = 0; m < 4; m++) {
for (int n = 1; n < keyboard[m].length; n++) {
if (letter[i] == keyboard[m][n]) {
letter[i] = keyboard[m][n - 1];
}
}
}
System.out.print(letter[i]);
}
}
}
}
}
输入:
O S, GOMR YPFSU/
输出:
[new Line]
I AM FINE TODAY.
如果您输入WSA
,则会出现错误。程序应终止为Q A Z并且“无法输入。但它正在给出
QA