UVA10082 WERTYU(洛谷-UVA10082)
2026/6/24 1:01:27 网站建设 项目流程

UVA10082 WERTYU(洛谷-UVA10082)

题目描述

有人打字的时候手整体往右挪了一格,本来要按左边的键,结果按到右边那个键了。现在给你一段打错后的文本,你要把每个字符还原成它键盘左边的字符,空格不用改,其他所有字母、标点、数字全部往左挪一位输出。

输入格式

输入由若干行文本组成。每行可能包含数字、空格、大写字母(除了 Q、A、Z),或者上方显示的标点符号(不包括反引号 ‘)。带有单词标签的按键(Tab,BackSp,Control 等)不会出现在输入中。

输出格式

你需要将每个字母或标点符号替换为在上方所示的 QWERTY 键盘上其左边的字符。输入中的空格在输出中应保持不变。

输入输出样例

输入 #1复制运行

OS,GOMRYPFSU/

输出 #1复制运行

IAMFINETODAY.

题目分析与解题思路

  1. 先把键盘所有有效字符按从左到右、从上到下拼成一个总字符串;

  2. 循环读取所有输入行;

  3. 逐个遍历每个字符:

    • 如果是空格,直接拼到结果里;
    • 如果不是空格,找到它在键盘字符串里的位置,取左边一位字符拼接

完整代码

importjava.util.Scanner;publicclassKeyboard{publicstaticvoidmain(String[]args){//定义完整键盘字符序列Stringkeyboard="`1234567890-=QWERTYUIOP[]\\ASDFFGHJKL;'ZXCVBNM,./";Scannerscanner=newScanner(System.in);while(scanner.hasNextLine()){Stringline=scanner.nextLine();Stringoutput="";for(inti=0;i<line.length();i++){charc=line.charAt(i);if(c==' '){output=output+c;}else{intn=keyboard.indexOf(c);charleftChar=keyboard.charAt(n-1);output=output+leftChar;}}System.out.println(output);}scanner.close();}}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询