我有一个字符串
S='ABACBADECAEF'
如何在该字符串中的每2个字符之间插入一个空格。被驱逐的输出应该是:
Out_S= 'AB AC BA DE CA EF'
答案 0 :(得分:6)
有几种方法可以做到这一点。所有这些方法都假设您的字符串长度为偶数。如果你有一个奇数字符,那么最后一对字符不能被分组成一对,所以下面的任何方法都会给你一个尺寸不匹配或超出界限的错误。
strjoin
第一种方法是将字符串分解为单个单元格,然后通过strjoin
与空格连接:
Scell = mat2cell(S, 1, 2*ones(1,numel(S)/2));
Out_S = strjoin(Scell, ' ');
我们得到:
Out_S =
AB AC BA DE CA EF
你可以使用正则表达式来计算每个标记正好2个字符,然后在每个标记的末尾插入一个空格,如果最后碰巧有空格,则剪掉最后的任何空格:
Out_S = strtrim(regexprep(S, '.{2}', '$0 '));
我们得到:
Out_S =
AB AC BA DE CA EF
您可以重塑字符矩阵,使每对字符都是一列,您可以插入另一行空格,然后重新整形。我们还会删除任何不必要的空格:
Sr = reshape(S, 2, []);
Sr(3,:) = 32*ones(1,size(Sr,2));
Out_S = strtrim(Sr(:).');
我们得到:
Out_S =
AB AC BA DE CA EF