repalacement of string with phone numbers

4 vues (au cours des 30 derniers jours)
Muhammad Usman Saleem
Muhammad Usman Saleem le 4 Juin 2015
Hi; I am going to attempt that question: Each number on older telephone keypads, except 0 and 1, corresponds to three uppercase letters as shown in this list: 2 ABC, 3 DEF, 4 GHI, 5 JKL, 6 MNO, 7 PRS, 8 TUV, 9 WXY A phone-number specification can include uppercase letters other than Q and Z, digits, the # and * signs, spaces, parentheses and dashes. Write a function called dial that takes as its input argument a string of any length that includes only these characters and returns as its output argument a string containing the corresponding telephone number with only digits, spaces, and the # and * signs. Specifically, it does not change the digits, the # and * signs, or the spaces, but it replaces each parenthesis with a space and each dash with a space, and it converts each uppercase letter to a digit according to the list shown above. Here is the input and output for one example of a call of the function: Input: '1 (FUN) DOG-4-YOU #2' Output: '1 386 364 4 968 #2' Note that in this example there are three spaces in the input string and seven spaces in the output string. If the input does not meet the phone-number specification given above, the function returns an empty array. You are not allowed to use the built-in function strrep. I have no idea how make such function? help me... Thanks

Réponse acceptée

Andrei Bobrov
Andrei Bobrov le 4 Juin 2015
Modifié(e) : Andrei Bobrov le 4 Juin 2015
function out = funbyMuhammad(in_char)
abc = ['()+-_',setdiff('A':'Z','QZ')];
d = ['#*','0':'9',' '];
if all(ismember(in_char,[abc,d]))
ii = [' ',sprintf('%d',kron(2:9,[1 1 1]))];
[lo,idx] = ismember(in_char,abc);
out = in_char;
out(lo) = ii(idx(lo));
else
out = [];
end
end
using
>> out = funbyMuhammad('1 (FUN) DOG-4-YOU #2')
out = 1 386 364 4 968 #2
>>
  7 commentaires
Muhammad Usman Saleem
Muhammad Usman Saleem le 4 Juin 2015
Modifié(e) : Muhammad Usman Saleem le 4 Juin 2015
(y) for corrected 2 @ Andrei Bobrov thanks.............. :-D please mark some comments on funOnMatlab function so that i can understand this question batter....
Wasi von Deutschland
Wasi von Deutschland le 28 Mai 2017
Hi @Andrei Bobrov Could you please tell me if Q and Z are allowed in the exercise then how one can do it? such as number 7 'PQRS' and number 9 'WXYZ' and number 8 as rest will work.

Connectez-vous pour commenter.

Plus de réponses (2)

Jan Orwat
Jan Orwat le 4 Juin 2015
Modifié(e) : Jan Orwat le 4 Juin 2015
You can try regular expressions:
>> regexprep('1A23D4',{'A','D'},{'2','3'})
ans =
122334

liu yuhui
liu yuhui le 1 Déc 2015
Thank you very much.

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by