如何将像1-14这样的字符串转换为01_014?(将2-2转换为02_002)?
我可以这样做:
testpoint_number = '5-16';
temp = textscan(testpoint_number, '%s', 'delimiter', '-');
temp = temp{1};
first_part = temp{1};
second_part = temp{2};
output_prefix = strcat('0',first_part);
parsed_testpoint_number = strcat(output_prefix, '_',second_part);
parsed_testpoint_number但我觉得这很乏味,我不知道如何处理第二部分(16 to 016)
发布于 2015-10-12 08:23:53
在处理整数时,我建议将textscan更改为%d (整数)。这样,您就可以使用*printf命令的格式化功能(例如,sprintf)。
*printf允许您指定整数的宽度。使用%02d,将打印一个2个字符宽的整数,该整数将被填充为零。
textscan返回一个{1x1} cell,其中包含一个整数的2x1数组。*printf可以自己处理这个问题,所以您只需提供参数temp{1}
temp = textscan(testpoint_number, '%d', 'delimiter', '-');
parsed_testpoint_number = sprintf('%02d_%03d',temp{1});发布于 2015-10-12 08:21:29
您的文本扫描可能是最直观的方法,但从那时起,我建议做的是将扫描的first_part和second_part转换成数字格式,给出整数。
然后,您可以使用正确的‘c’样式格式化程序将其放入目标字符串,以指示您的零填充前缀宽度,例如:
temp = textscan(testpoint_number, '%d', 'delimiter', '-');
parsed_testpoint_number = sprintf('%02d_%03d', temp{1});查看C sprintf()文档,了解字符串格式选项的说明。
https://stackoverflow.com/questions/33076228
复制相似问题