یک تابع بنویسید که آرایه ای از 10 عدد صحیح (بین 0 تا 9) را بپذیرد و رشته ای از آن اعداد را در قالب یک شماره تلفن برگرداند.
مثال:
Kata.createPhoneNumber(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}) // => returns "(123) 456-7890"
برای برگرداندن این چالش ، قالب بازگشتی باید صحیح باشد.
بعد از بستن پرانتز فاصله را فراموش نکنید!
Description:
Write a function that accepts an array of 10 integers (between 0 and 9), that returns a string of those numbers in the form of a phone number.
Example
Kata.createPhoneNumber(new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}) // => returns "(123) 456-7890"
The returned format must be correct in order to complete this challenge.
Don’t forget the space after the closing parentheses!
public class Kata { public static String createPhoneNumber(int[] numbers) { return String.format("(%d%d%d) %d%d%d-%d%d%d%d",numbers[0],numbers[1],numbers[2],numbers[3],numbers[4],numbers[5],numbers[6],numbers[7],numbers[8],numbers[9]); } }
public class Kata { public static String createPhoneNumber(int[] numbers) { return String.format("(%d%d%d) %d%d%d-%d%d%d%d", java.util.stream.IntStream.of(numbers).boxed().toArray()); } }
public class Kata { public static String createPhoneNumber(int[] numbers) { String phoneNumber = new String("(xxx) xxx-xxxx"); for (int i : numbers) { phoneNumber = phoneNumber.replaceFirst("x", Integer.toString(i)); } return phoneNumber; } }
import java.util.Arrays; public class Kata { private static String PHONE_FORMAT = "(%d%d%d) %d%d%d-%d%d%d%d"; public static String createPhoneNumber(int[] numbers) { Integer[] numbersInt = Arrays.stream(numbers).boxed().toArray(Integer[]::new); return String.format(PHONE_FORMAT, numbersInt); } }
import java.util.Arrays; import java.util.concurrent.atomic.AtomicInteger; import java.util.stream.Collectors; public class Kata { public static String createPhoneNumber(int[] numbers) { AtomicInteger index = new AtomicInteger(); String numberFormat = Arrays.stream(numbers) .mapToObj(n -> index.get() == 0 ? "(" + numbers[index.getAndIncrement()] : index.get() == 2 ? numbers[index.getAndIncrement()] + ") " : index.get() == 5 ? numbers[index.getAndIncrement()] + "-" : "" + numbers[index.getAndIncrement()]) .collect(Collectors.joining()); return numberFormat; } }
function createPhoneNumber(array $digits): string { return sprintf("(%d%d%d) %d%d%d-%d%d%d%d", ...$digits); }
function createPhoneNumber($numbersArray) { return vsprintf("(%d%d%d) %d%d%d-%d%d%d%d", $numbersArray); }
function createPhoneNumber($numbersArray) { //input validation if (count($numbersArray) !== 10) { throw new \InvalidArgumentException('invalid input: must be 10 digits'); } foreach ($numbersArray as $digit) { if ($digit< 0 || $digit >9) { throw new \InvalidArgumentException('invalid input: each value should be between 0 and 9'); } } //output processing return sprintf( '(%s) %s-%s', $numbersArray[0] . $numbersArray[1] . $numbersArray[2], $numbersArray[3] . $numbersArray[4] . $numbersArray[5], $numbersArray[6] . $numbersArray[7] . $numbersArray[8] . $numbersArray[9] ); }
function createPhoneNumber($numbersArray) { return sprintf('(%d%d%d) %d%d%d-%d%d%d%d', ...$numbersArray); }
function createPhoneNumber($numbersArray) { preg_match('/(\d{3})(\d{3})(\d{4})/', implode('', $numbersArray), $matches); return '('.$matches[1].') '.$matches[2].'-'.$matches[3]; }
function createPhoneNumber($numbersArray) { $data = implode($numbersArray); return '('.substr($data, 0, 3).') '.substr($data, 3, 3).'-'.substr($data,6); }