Create Phone Number

kata programming

یک تابع بنویسید که آرایه ای از 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);
}

دیدگاهتان را بنویسید