kgk*_*kgk 2 string matlab space
我有一个字符串
S='ABACBADECAEF'
Run Code Online (Sandbox Code Playgroud)
如何在该字符串中的每2个字符之间插入一个空格.被驱逐的输出应该是:
Out_S= 'AB AC BA DE CA EF'
Run Code Online (Sandbox Code Playgroud)
有几种方法可以做到这一点.所有这些方法都假设您的字符串长度是均匀的.如果你有一个奇数字符,那么最后一对字符不能分组成一对,所以下面的任何方法都会给你一个维度不匹配或超出界限的错误.
strjoin第一种方法是将字符串分解为单个单元格,然后通过strjoin空格将它们连接起来:
Scell = mat2cell(S, 1, 2*ones(1,numel(S)/2));
Out_S = strjoin(Scell, ' ');
Run Code Online (Sandbox Code Playgroud)
我们得到:
Out_S =
AB AC BA DE CA EF
Run Code Online (Sandbox Code Playgroud)
您可以使用正则表达式为每个标记准确计算2个字符,然后在每个标记的末尾插入一个空格,如果最后碰巧有空格,则修剪掉末尾的任何空格:
Out_S = strtrim(regexprep(S, '.{2}', '$0 '));
Run Code Online (Sandbox Code Playgroud)
我们得到:
Out_S =
AB AC BA DE CA EF
Run Code Online (Sandbox Code Playgroud)
您可以重塑字符矩阵,以便每对字符都是一列,您可以插入另一行充满空格,然后重新整形.我们还删除了任何不必要的空格:
Sr = reshape(S, 2, []);
Sr(3,:) = 32*ones(1,size(Sr,2));
Out_S = strtrim(Sr(:).');
Run Code Online (Sandbox Code Playgroud)
我们得到:
Out_S =
AB AC BA DE CA EF
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4123 次 |
| 最近记录: |