Я пытаюсь написать программу, которая предлагает пользователю ввести семизначный телефонный номер в качестве ввода и вычисляет все возможные семибуквенные словосочетания.После сортировки результатов мне нужно распечатать первые и последние 10 комбинаций.
Я знаю, что могу отдельно проверить все входные данные с помощью операторов if
и распечатать их с помощью цикла for в конце;Тем не менее, я знаю, что есть лучший способ решить эту проблему.
Мы также должны использовать метод arraycopy()
.
Будем весьма признательны за любые идеи / советы!Просто хочу улучшить свои навыки кодирования.
EX: Стандартные телефонные клавиатуры содержат цифры от нуля до девяти.С цифрами от двух до девяти каждая связана с тремя буквами (как показано ниже).Многим людям трудно запоминать телефонные номера, поэтому они используют соответствие между цифрами и буквами, чтобы создать семизначные слова, соответствующие их телефонным номерам.Например, человек, чей номер телефона 686-2377, мог бы использовать этот инструмент для разработки семибуквенного слова «NUMBERS».
2: A B C
3: D E F
4: G H I
5: J K L
6: M N 0
7: P R S
8: T U V
9: W X Y
Каждый семибуквенный номер телефона соответствует множеству разных семибуквенных слов., но большинство из этих слов представляют собой неузнаваемые сопоставления букв.Однако возможно, что владелец парикмахерской был бы рад узнать, что номер телефона магазина, 424-7288, соответствует «СТРИЖЕ». Ветеринар с номером телефона 738-2273 был бы рад узнать, что номер соответствуетна буквы «PETCARE». Автосалон был бы рад узнать, что номер дилера 639-2277 соответствует «NEWCARS».
package Assignment5;
import java.util.Scanner;
import java.lang.System;
public class PhoneNumber
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
String[][] letterArray = {{"A", "B", "C"}, {"D", "E", "F"}, {"G", "H", "I"}, {"J", "K", "L"}, {"M", "N", "O"}, {"P", "R", "S"}, {"T", "U", "V"}, {"W", "X", "Y"}};
char[] numbersAsChar = new char[7];
System.out.println("Enter phone number: ");
String input = scan.nextLine();
//0 and 1 have no alphabetical value
//If user enters 0 or 1 in phone number - ask them to input a new number
while(input.contains("0") || input.contains("1") || input.contains(" "))
{
System.out.println("Invalid phone number! Please try again without 0 or 1: ");
input = scan.nextLine();
}
//Take each number from user input and assign to the array numbersAsChar
for(int i = 0; i < input.length(); i++)
{
numbersAsChar[i] = input.charAt(i);
}
//Print out each individual number input by user - Testing purposes
for(int i = 0; i < numbersAsChar.length; i++)
{
System.out.println("Entered Digit " + (i+1) + ": " + numbersAsChar[i]);
}
//Test to see what the value of each character is and print out each letter value
if (numbersAsChar[0] == '2')
{
System.out.println("Hello");
}
//use .arraycopy()
}
}