Java 实现 输入 AA 输出 AB ..输入 AZ 输出 BA 一直到输出 ZZ

2019-06-05 14:30:04 +08:00
 h8743

:)

4696 次点击
所在节点    Java
41 条回复
firefffffffffly
2019-06-05 14:35:18 +08:00
if(input == "AA") {
System.out.println("AB");
} else if(input == "AZ") {
System.out.println("BA 一到输出 ZZ");
}

自己的作业自己做
pcatzj
2019-06-05 14:52:17 +08:00
@firefffffffffly 像一楼这么优秀的人不多了
fzy0728
2019-06-05 14:56:10 +08:00
@firefffffffffly 没毛病
xmoiduts
2019-06-05 14:56:50 +08:00
只有我是把字母变成数值,然后+1 再变回字母吗?
smilenceX
2019-06-05 14:57:19 +08:00
可能我阅读理解不过关,没读懂题目。
ipwx
2019-06-05 14:57:21 +08:00
一楼不要这么绝情嘛~ 我来给楼主提个醒:

AA = 0
AB = 1
...
ZZ = 26 * 26

剩下的楼主自己想。
ipwx
2019-06-05 14:57:52 +08:00
不好意思,ZZ = 26 * 26 - 1
quericy
2019-06-05 15:03:10 +08:00
一楼完美断句逻辑严谨 2333

楼主可以从 ASCII 码着手思考一下
axbx
2019-06-05 15:04:02 +08:00
题目写清楚一点吧
mirrorman
2019-06-05 15:07:59 +08:00
取模运算
mirrorman
2019-06-05 15:08:41 +08:00
相当于 26 进制加法
maninfog
2019-06-05 15:10:26 +08:00
@firefffffffffly 还是不严谨阿,字符串比较要用 equals 吧
passerbytiny
2019-06-05 15:14:06 +08:00
char[] chars = new char[]{A, B, ... , Z};

for (char firstChar : chars) {
for (char secondChar : chars ) {
System.out.println(firstChar + secondChar );
}
}
passerbytiny
2019-06-05 15:15:48 +08:00
擦,跑题了
h8743
2019-06-05 15:28:41 +08:00
@axbx 就是一个函数 输入 AA 输出 AB ..输入 AZ 输出 BA 一直到输出 ZZ
hhhsuan
2019-06-05 15:29:51 +08:00
26 进制
h8743
2019-06-05 15:30:06 +08:00
@axbx 就是一个函数 输入 AA 输出 AB
..输入 AZ 输出 BA
一直到 最大输入 ZY 输出 ZZ 输入 ZZ 时候 提示已到底
youngfish
2019-06-05 15:37:08 +08:00
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String next = scanner.next();
if (next.length() != 2) {
System.out.println("输入值有误");
return;
}
next = new StringBuilder(next).reverse().toString();
StringBuilder result = new StringBuilder();
int lastValue = 1;
for (int i = 0; i < next.length(); i++) {
lastValue = isAZ(next.charAt(i), lastValue, result);
}
System.out.println(result.reverse().toString());
}

private static int isAZ(char inputChar, int isAdd, StringBuilder result) {
if (inputChar < 'A' || inputChar > 'Z') {
System.out.println("输入的字符有误,请输入 A-Z");
return 0;
} else {
if (isAdd == 0) {
result.append(inputChar);
return 0;
}
inputChar++;
if (inputChar > 'Z') {
inputChar = (char) ((inputChar - 65) % 26 + 65);
result.append(inputChar);
return 1;
} else {
inputChar = (char) ((inputChar - 65) % 26 + 65);
result.append(inputChar);
return 0;
}
}
}
passerbytiny
2019-06-05 15:45:31 +08:00
char[] inputChars = input.toCharArray();
String output = null;
if (input.matches("[A-Z][A-Y]"){
output = new StringBuilder().append(inputChars [0]).append(getNextAlphabet(inputChars [1]));
} else if (input.matches("[A-Y]Z") {
output = new StringBuilder().append(getNextAlphabet(inputChars [0]).append("A");
} else if (input.equals("ZZ"){
output = "到底了";
} else {
output = "Invalid input!";
}

char getNextAlphabet(char c){
return (char)(((int)c) + 1);
}
AntiGameZ
2019-06-05 15:51:06 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571126

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX