String 在字符串中插入空格(Matlab)

String 在字符串中插入空格(Matlab),string,matlab,space,String,Matlab,Space,我有一根绳子 S='ABACBADECAEF' 如何在该字符串的每两个字符之间插入空格。expexted输出应为: Out_S= 'AB AC BA DE CA EF' 有几种方法可以做到这一点。所有这些方法都假定字符串长度为偶数。如果您有奇数个字符,则最后一对字符不能分组为一对,因此下面的任何方法都会导致维度不匹配或越界错误 方法#1-拆分为单元格,然后使用strjoin 第一种方法是将字符串分解为单个单元格,然后通过空格将它们连接起来: Scell = mat2cell(S,

我有一根绳子

   S='ABACBADECAEF'
如何在该字符串的每两个字符之间插入空格。expexted输出应为:

 Out_S= 'AB AC BA DE CA EF' 

有几种方法可以做到这一点。所有这些方法都假定字符串长度为偶数。如果您有奇数个字符,则最后一对字符不能分组为一对,因此下面的任何方法都会导致维度不匹配或越界错误


方法#1-拆分为单元格,然后使用strjoin 第一种方法是将字符串分解为单个单元格,然后通过空格将它们连接起来:

Scell = mat2cell(S, 1, 2*ones(1,numel(S)/2));
Out_S = strjoin(Scell, ' ');
我们得到:

Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF
方法#2-正则表达式 您可以使用正则表达式精确计算每个标记的2个字符,然后在每个标记的末尾插入一个空格,如果结尾恰好有空格,则在结尾处删除所有空格:

Out_S = strtrim(regexprep(S, '.{2}', '$0 '));
我们得到:

Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF
方法#3-重塑添加额外一行空格并重塑背面 您可以重塑字符矩阵,使每对字符都是一列,然后插入另一行充满空格,然后重塑回原形。我们还删除了任何不必要的空白:

Sr = reshape(S, 2, []);
Sr(3,:) = 32*ones(1,size(Sr,2));
Out_S = strtrim(Sr(:).');
我们得到:

Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF
Out_S =

AB AC BA DE CA EF