我有一个字符串变量name
,其值为abcd.jpg
如何从该字符串中删除.jpg
?
答案 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