gpt4 book ai didi

string - 在字符串中应用退格键

转载 作者:太空宇宙 更新时间:2023-11-03 19:17:09 25 4
gpt4 key购买 nike

我有一个包含退格键的字符串。将其显示到命令行将“应用”退格键,这样每个退格键和紧接在它前面的非退格键字符都看不到:

>> tempStr = ['aaab', char(8)]
tempStr =
aaa

然而删除操作只发生在显示字符串的时候。它仍然有退格字符,里面还有 'b':

>> length(tempStr)
ans =
5

我正在寻找应用退格操作的最小(理想情况下是某种内置的字符串处理)函数:

>>f(tempStr)
ans =
'aaa'

知道我在字母表“a”到“z”加上“”和退格键上有一个枚举类(用于存储我自己的字母索引、与每个字母相关的图像等)可能也会有所帮助。将此退格键删除操作作为作用于其对象向量的父类(super class)的方法会非常出色。

最佳答案

您可以使用 while 循环通过一个简单的函数来完成:

function s = printb(s)

while true

% Find backspaces
I = strfind(s, char(8));

% Break condition
if isempty(I), break; end

% Remove elements
if I(1)==1
s = s(2:end);
else
s(I(1)-1:I(1)) = [];
end

end

测试给出:

s = [char(8) 'hahaha' char(8) char(8) '!'];

numel(s) % returns 10

z = printb(s) % returns 'haha!'

numel(z) % returns 5

这并不是真正的“最小”,但就我的知识而言,我认为这对于 Matlab 中的正则表达式是不可行的。

最好的,

关于string - 在字符串中应用退格键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31856021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com