输入一个由英文字母组成的字符串(大小写均可),将所有英文字母转换成它们在字母表中的序号,例如:“AbbcD”转换为“12234”。
作者 蔡轲
单位 南昌航空大学
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
输入格式:
由英文字母组成的字符串(大小写均可)。例如:“AbbcD” 若包含非英文字母,视为非法输入。
输出格式:
所有英文字母转换成它们在字母表中的序号,例如:“12234”。 非法输入输出"Wrong Format".
输入样例:
在这里给出一组输入。例如:
AbbcD
输出样例:
在这里给出相应的输出。例如:
12234
输入样例1:
在这里给出一组输入。例如:
AFOPI
输出样例1:
在这里给出相应的输出。例如:
1615169
输入样例2:
在这里给出一组输入。例如:
c3u
输出样例2:
在这里给出相应的输出。例如:
Wrong Format
我滴答案:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.next();
//正则表达式判断合法性
if(!a.matches("^[A-Za-z]+$")) {
System.out.print("Wrong Format");
return;
}
for(int i=0;i<a.length();i++) {
if(a.charAt(i)>=65&&a.charAt(i)<=90) {
System.out.print(a.charAt(i)-64);
}else {
System.out.print(a.charAt(i)-96);
}
}
}
}
我滴总结:
这个题没什么难度嗷,也没挖什么坑
唯一为了提升代码质量,减少运行时间,我用了正则表达式。
其实这道题一个一个遍历也是能做的,但是时间会更长一点。
最后输出部分,通过计算ACSII码值来得到1~9