repalacement of string with phone numbers

조회 수: 4 (최근 30일)
Muhammad Usman Saleem
Muhammad Usman Saleem 2015년 6월 4일
댓글: Wasi von Deutschland 2017년 5월 28일
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

채택된 답변

Andrei Bobrov
Andrei Bobrov 2015년 6월 4일
편집: Andrei Bobrov 2015년 6월 4일
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
Muhammad Usman Saleem
Muhammad Usman Saleem 2015년 6월 4일
편집: Muhammad Usman Saleem 2015년 6월 4일
(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 2017년 5월 28일
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.

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Jan Orwat
Jan Orwat 2015년 6월 4일
편집: Jan Orwat 2015년 6월 4일
You can try regular expressions:
>> regexprep('1A23D4',{'A','D'},{'2','3'})
ans =
122334

liu yuhui
liu yuhui 2015년 12월 1일
Thank you very much.

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by