如何从字符串末尾删除字符?

时间:2014-03-07 18:02:16

标签: matlab

我有一个字符串变量name,其值为abcd.jpg 如何从该字符串中删除.jpg

4 个答案:

答案 0 :(得分:3)

对于这种特殊情况,有函数fileparts

答案 1 :(得分:2)

这应该这样做:

if(length(name) > 4)
    if(name(length(name)-3:length(name)) == '.jpg')
        name = name(1:length(name)-4);
    end
end

或者,如果您想在字符串末尾查找任何3个字符的文件扩展名,您只需检查位置.处的length(name)-3字符,如下所示:

if(name(length(name)-3) == '.')
    name = name(1:length(name)-4);
end

你也可以使用Daniel提到的fileparts函数:

[~,name,~] = fileparts(name)

答案 2 :(得分:2)

对于一般情况(文件扩展名可能包含任意数量的字符,文件名可能包含点):

>> name = 'example.file.html';
>> result = regexprep(name, '\.[^\.]*$', '')

result =

example.file

请参阅regexprep documentation或询问我您是否不确定其工作原理。

答案 3 :(得分:2)

由于您没有要求对输入进行任何类型的检查,因此您可以简单地使用matlab中数组的end功能从数组末尾向后索引,以忽略最后四个元素,如下所示:

name = 'abcd.jpg' % original name
namewithoutfiletype = name(1:end-4) % name without the last four characters