Java의 알파벳 전화 번호 번역기

Sheeraz Gul 2023년10월12일
  1. Java의 알파벳 전화 번호 번역기
  2. regexswitch 문을 사용하여 알파벳 전화 번호 변환기 생성
  3. Google Guava를 사용하여 알파벳 전화 번호 번역기 생성
Java의 알파벳 전화 번호 번역기

이 자습서는 Java에서 알파벳 전화 번호 변환기를 생성하는 방법을 보여줍니다.

Java의 알파벳 전화 번호 번역기

때때로 회사는 555-GET-FOOD와 같은 전화 번호 형식을 사용하는데, 이는 고객이 쉽게 기억할 수 있도록 전화 번호를 작성하는 표준화된 프로세스입니다. 전화 번호에 대한 문자의 표준 버전은 다음과 같습니다.

A, B, and C = 2
D, E, and F = 3
G, H, and I = 4
J, K, and L = 5
M, N, and O = 6
P, Q, R, and S = 7
T, U, and V = 8
W, X, Y, and Z = 9

위의 시나리오를 기반으로 알파벳 전화 번호에서 숫자로 전화 번호 변환기를 만들 수 있습니다. 이는 다른 방법을 통해 달성할 수 있습니다.

regexswitch 문을 사용하여 알파벳 전화 번호 변환기 생성

Regex는 주어진 패턴을 일치시키는 데 사용되는 Java 패키지이므로 표준 전화 번호 형식이 123-XXX-XXXX인 경우 이 번호의 정규식 패턴은 [0-9]{3}-[a-zA-Z]{3}-[a-zA-Z]{4}, 입력 전화번호를 표준 형식과 일치시키는 데 사용됩니다.

Switch 문은 위 목록에 제공된 문자와 숫자를 기반으로 전화 번호 문자열에 번호가 추가되는 경우를 생성하는 데 사용할 수 있습니다. 이 예제를 구현해 보겠습니다.

package delftstack;

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {
  public static void main(String[] args) {
    // user input for the phone number
    Scanner PhoneNumber_Input = new Scanner(System.in);

    System.out.println("Please enter a Phone number with the format: (123-XXX-XXXX) ");

    // Convert the phone number to a string
    String Phone_Number = PhoneNumber_Input.nextLine();
    if (Validate_PhoneNumber(Phone_Number)) {
      Phone_Number = Phone_Number.toUpperCase();
      String Translated_PhoneNumber = Translate_PhoneNumber(Phone_Number);
      System.out.println(Translated_PhoneNumber);
    } else {
      System.out.println("Wrong phone number format.");
      return;
    }
  }

  private static boolean Validate_PhoneNumber(String Phone_Number) {
    Pattern Number_Pattern = Pattern.compile("[0-9]{3}-[a-zA-Z]{3}-[a-zA-Z]{4}");

    // Create The matcher object.
    Matcher Number_Matcher = Number_Pattern.matcher(Phone_Number);
    if (Number_Matcher.find()) {
      return true;
    }
    return false;
  }

  public static String Translate_PhoneNumber(String Phone_Number) {
    String Phone_Number_Result = "123-";
    String Phone_Number_Suffix = Phone_Number.substring("123-".length());
    for (int i = 0; i < Phone_Number_Suffix.length(); i++) {
      char Number_Character = Phone_Number_Suffix.charAt(i);
      if (Character.isLetter(Number_Character)) {
        switch (Number_Character) {
          case 'A':
          case 'B':
          case 'C':
            Phone_Number_Result += "2";
            break;
          case 'D':
          case 'E':
          case 'F':
            Phone_Number_Result += "3";
            break;
          case 'G':
          case 'H':
          case 'I':
            Phone_Number_Result += "4";
            break;
          case 'J':
          case 'K':
          case 'L':
            Phone_Number_Result += "5";
            break;
          case 'M':
          case 'N':
          case 'O':
            Phone_Number_Result += "6";
            break;
          case 'P':
          case 'Q':
          case 'R':
          case 'S':
            Phone_Number_Result += "7";
            break;
          case 'T':
          case 'U':
          case 'V':
            Phone_Number_Result += "8";
            break;
          case 'W':
          case 'X':
          case 'Y':
          case 'Z':
            Phone_Number_Result += "9";
            break;
        }
      } else if (Number_Character == '-') {
        Phone_Number_Result += "-";
      }
    }
    return Phone_Number_Result;
  }
}

위의 코드는 세 가지 메소드를 포함하고 있는데, 첫 번째는 메인 메소드, 두 번째는 regex 메소드에 따라 전화번호를 검증하는 메소드, 세 번째는 전화번호를 번역하는 메소드입니다. 출력을 참조하십시오.

Please enter a Phone number with the format: (123-XXX-XXXX)
444-CAT-GOOD
123-228-4663

보시다시피 444-CAT-GOOD 전화번호는 123-228-4663으로 번역됩니다.

Google Guava를 사용하여 알파벳 전화 번호 번역기 생성

Google Guava는 많은 작업을 제공하는 Java용 라이브러리입니다. Guava에는 위 목록에 설명된 형식에 따라 데이터를 저장하는 데 사용할 수 있는 ImmutableMultimap이 포함됩니다.

ImmutableMultimap은 Java 8 인라인 함수 구문과 함께 guava 라이브러리의 Splitter와 함께 사용되어 문자가 있는 입력 번호에서 전화 번호를 생성합니다.

Google Guava 라이브러리가 환경에 추가되었는지 확인하십시오. 위의 시나리오를 기반으로 예제를 구현해 보겠습니다.

package delftstack;

import com.google.common.base.Splitter;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.Lists;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;

public class Example {
  public static void main(String[] args) {
    ImmutableMultimap<String, String> Translate_PhoneNumber =
        new ImmutableMultimap.Builder<String, String>()
            .putAll("2", Lists.<String>newArrayList("A", "B", "C"))
            .putAll("3", Lists.<String>newArrayList("D", "E", "F"))
            .putAll("4", Lists.<String>newArrayList("G", "H", "I"))
            .putAll("5", Lists.<String>newArrayList("J", "K", "L"))
            .putAll("6", Lists.<String>newArrayList("M", "N", "O"))
            .putAll("7", Lists.<String>newArrayList("P", "Q", "R", "S"))
            .putAll("8", Lists.<String>newArrayList("T", "U", "V"))
            .putAll("9", Lists.<String>newArrayList("W", "X", "Y", "Z"))
            .build();
    // Get the user input
    Scanner Input_PhoneNumber = new Scanner(System.in);
    System.out.print("Enter a phone number with the format (123-XXX-XXXX): ");

    // Put the phone number into a string
    String Phone_Number = Input_PhoneNumber.nextLine();
    // close scanner
    Input_PhoneNumber.close();

    // Use Guava Splitter
    List<String> Converted_PhoneNumber =
        Splitter.fixedLength(1)
            .splitToList(Phone_Number)
            .stream()
            .map(t -> {
              if (Character.isAlphabetic(t.codePointAt(0))) {
                return Translate_PhoneNumber.inverse().get(t).asList().get(0);
              } else {
                return t;
              }
            })
            .collect(Collectors.toList());

    System.out.println(String.join("", Converted_PhoneNumber));
  }
}

위의 코드는 먼저 표준 시나리오를 기반으로 문자 및 숫자 정보로 ImmutableMultimap을 생성한 다음 Java 8 인라인 함수 구문과 함께 Splitter를 사용하여 알파벳 전화 번호를 변환합니다. 출력 참조:

Enter a phone number with the format (123-XXX-XXXX): 444-CAT-GOOD
444-228-4663
작가: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook