gpt4 book ai didi

java - 输出中每个整数之间的连字符

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:04:30 26 4
gpt4 key购买 nike

所以我不得不编写一个模拟电话键盘的程序,而它将文本字符串转换为整数:abc(2)、def(3)、ghi(4)、jkl(5)、mno(6 ),pqrs(7)、tuv(8)、wxyz(9)。除了输出必须在数字之间有连字符 (-)。

示例输入:阿拉巴马州

输出:2-5-2-2-2-6-2

但我只输出2522262。我将如何正确格式化它?

public class Keypad {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);

System.out.print("Enter a string: ");
String s = sc.nextLine();

System.out.println(getNumbers(s));
}

public static String getNumbers(String s) {
String result = new String();

for (int i = 0; i < s.length(); i++) {
if (Character.isLetter(s.charAt(i))) {
result += getNumber(Character.toUpperCase(s.charAt(i)));
}
else {
result += s.charAt(i);
}
}
return result;
}

public static int getNumber(char upperCaseLetter) {
int number = ((upperCaseLetter - 'A') / 3) + 2;
if (number < 7) {
return number;
}
else if (upperCaseLetter - 'A' < 20) {
return 7;
}
else if (upperCaseLetter - 'A' < 23) {
return 8;
}
else {
return 9;
}
}
}

最佳答案

转到构建结果的地方并添加连字符:

    result += getNumber(Character.toUpperCase(s.charAt(i)));
result += "-";

然后在返回之前,您必须去掉最后一个连字符:

    return result.substring(0, result.length() - 1);

所以整个方法看起来像这样:

public static String getNumbers(String s) {
String result = new String();

for (int i = 0; i < s.length(); i++) {
if (Character.isLetter(s.charAt(i))) {
result += getNumber(Character.toUpperCase(s.charAt(i)));
result += "-";
}
else {
result += s.charAt(i);
}
}
return result.substring(0, result.length() - 1);
}

关于java - 输出中每个整数之间的连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42634871/

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