gpt4 book ai didi

java - 在Java中将多个电话号码存储在单个数组中

转载 作者:行者123 更新时间:2023-12-01 18:30:00 28 4
gpt4 key购买 nike

我正在开发一个程序,但我陷入了困境。这个特定的程序应该提示用户输入大写或小写 Y 来处理电话号码,然后提示他们输入电话号码的字符表示(例如 CALL HOME 将是 225-5466),如此重复,直到用户输入字母 Y 以外的其他内容。输入的所有单词都将存储到单个数组中。然后程序将数组中的这些单词转换为实际的电话号码。我对如何设置这个有点困惑。这是我到目前为止所拥有的。

        import java.util.*;
public class Program1 {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String begin;
int phoneNumber = number.convertNum();
System.out.println("Please enter an uppercase or lowercase Y when you are ready to enter a telephone number: ");
begin = input.next();
while (begin.equals("y") || begin.equals("Y")) {
System.out.println("Please enter a telephone number expressed in letters: ");
String letters = input.next();
char[] phoneArray = letters.toCharArray();
System.out.println("Please enter an uppercase or lowercase Y when you are ready to enter a telephone number: ");
begin = input.next();
}
System.out.println("Here is the numeric representation of the phone number(s) you entered");
}

public static int convertNum(char[] phoneArray) {


return number;
}
}

我意识到第二种方法还没有任何可返回的东西,我只是想在我做我真正知道如何做的事情时将其放在那里哈。 ConvertNum() 方法应该是将字符数组转换为电话号码的方法。

我仍在尝试解决这个问题。我认为为了转换为电话号码,将用户的输入存储为单个字母而不是单词会更容易。

此外,我们只应该识别输入的每个单词的前 7 个字母,例如 CALL HOME 示例,有 8 个字母,但它仍然是一个七位数字的电话号码,所以我不确定这会如何工作。

此外,在转换后打印电话号码时,我们应该在第三个数字之后打印连字符,我不知道如何从数组中完成这一点。

在达到这一点之前,我实际上对这个程序感觉非常好,哈哈。任何帮助将不胜感激。

最佳答案

要将字符转换为正确的数字,您可以使用 map ,其中键是一个字符,值是它代表的数字(字符串形式)。

Map<Character,String> charToPhoneDigitMap = new HashMap<Character,String>();
charToPhoneDigitMap.put('A', "2");
charToPhoneDigitMap.put('B', "2");
charToPhoneDigitMap.put('C', "2");
charToPhoneDigitMap.put('D', "3");
...
charToPhoneDigitMap.put('W', "9");
charToPhoneDigitMap.put('X', "9");
charToPhoneDigitMap.put('Y', "9");
charToPhoneDigitMap.put('Z', null);

因此,对于输入字符串中的每个字符,忽略任何空格和破折号,获取它的数字:

String digitStr = charToPhoneDigitMap.get(inputChar);
if(digitStr == null) {
throw new IllegalArgumentException("'" + inputChar + "' has no corresponding phone number digit.");
}
phoneNumString += digitStr;

phoneNumString的长度达到7时,停止。

就显示破折号而言:不存储破折号,只存储原始数字。

创建一个 getPhoneNumberWithDash(raw_phoneNumStr) 函数,该函数返回该函数,并在正确的位置显示破折号。

现在,如果您还想存储字母表示形式,那么您可能需要一个 PhoneNumber 数组,而不是仅包含原始电话号码(七位数字)的字符串数组每个):

public class PhoneNumber  {
private final String digits;
private final String letters;
public PhoneNumber(String digits, String letters) {
this.digits = digits;
this.letters = letters;
}
public String getLetters() {
return letters;
}
String getDigits() {
return digits;
}
}

关于java - 在Java中将多个电话号码存储在单个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24665049/

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