给定一个字符串S,它由字母,数字和特殊字符组成。我们需要编写一个程序将字符串拆分为三个不同的字符串S1,S2和S3,以便-
字符串S1将包含S中存在的所有字母,
字符串S2将包含S中存在的所有数字,并且
S3将包含S中存在的所有特殊字符。
字符串S1,S2和S3的字符顺序应与输入中出现的顺序相同。
以下是代码-
const str = "Th!s String C0nt@1ns d1fferent ch@ract5rs"; const seperateCharacters = str => { const strArr = str.split(""); return strArr.reduce((acc, val) => { let { numbers, alpha, special } = acc; if(+val){ numbers += val; }else if(val.toUpperCase() !== val.toLowerCase()){ alpha += val; }else{ special += val; }; return { numbers, alpha, special }; }, { numbers: '', alpha: '', special: '' }); }; console.log(seperateCharacters(str));
输出结果
这将在控制台中产生以下输出-
{ numbers: '115', alpha: 'ThsStringCntnsdfferentchractrs', special: '! 0@ @' }