gpt4 book ai didi

java - 输出问题Java

转载 作者:行者123 更新时间:2023-11-29 08:12:09 24 4
gpt4 key购买 nike

好的,我终于解决了这个问题,但我还有一个问题,当我根据要求输入字符串时,如果我在程序运行时输入的数字中加入任何空格,它会将这些空格转换为数字9 在我的输出中,如果我不使用空格,一切运行良好,关于如何阻止将 9 添加到我的空间中的任何想法?提前致谢。

package chapter_9;

import java.util.Scanner;


public class Nine_Seven {


public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a string: ");
String string = input.nextLine();
string = string.toUpperCase();

for (int i = 0;i<string.length();i++){
if(Character.isDigit(string.charAt(i)))
System.out.print(string.charAt(i));
else
System.out.print(getNumber(string.charAt(i)));
}
}


public static int getNumber(char uppercaseLetter){

if (uppercaseLetter == 'A' || uppercaseLetter == 'B' || uppercaseLetter == 'C')
return 2;
else if (uppercaseLetter == 'D' || uppercaseLetter == 'E' || uppercaseLetter == 'F')
return 3;
else if (uppercaseLetter == 'G' || uppercaseLetter == 'H' || uppercaseLetter == 'I')
return 4;
else if (uppercaseLetter == 'J' || uppercaseLetter == 'K' || uppercaseLetter == 'L')
return 5;
else if (uppercaseLetter == 'M' || uppercaseLetter == 'N' || uppercaseLetter == 'O')
return 6;
else if (uppercaseLetter == 'P' || uppercaseLetter == 'Q' || uppercaseLetter == 'R' || uppercaseLetter == 'S')
return 7;
else if (uppercaseLetter == 'T' || uppercaseLetter == 'U' || uppercaseLetter == 'V')
return 8;
else
return 9;
}


}

输出示例:输入字符串:597 6630

597*9*6630

最佳答案

看看 getNumber() 做了什么 - 如果它不匹配您指定的任何情况,它会返回 9。

选项:

  • 更改它以明确为空格返回不同的数字
  • 如果值为 ' ',则将调用代码更改为不调用 getNumber()

我还建议将调用代码重构为仅调用一次 charAt(i),只是为了整洁。例如,您可能想要:

for (int i = 0; i < string.length(); i++){
char c = string.charAt(i);

if (Character.isDigit(c) || c == ' ') {
System.out.print(c);
} else {
System.out.print(getNumber(c));
}
}

如注释中所述,getNumber() 也可以使用简单的开关/大小写来编写:

public static int getNumber(char uppercaseLetter) {
switch (upperCaseLetter) {
case 'A': case 'B': case 'C':
return 2;
case 'D': case 'E': case 'F':
return 3;
case 'G': case 'H': case 'I':
return 4;
case 'J': case 'K': case 'L':
return 5;
case 'M': case 'N': case 'O':
return 6;
case 'P': case 'Q': case 'R': case 'S'
return 7;
case 'T': case 'U': case 'V':
return 8;
default:
return 9;
}
}

(显然,如果您愿意,您也可以垂直堆叠箱子......)

关于java - 输出问题Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com