主题:怎样提取不定长字符串中的数字?
大智若愚
[专家分:90] 发布于 2010-09-26 15:06:00
大家好!
比如有下列的字符串:
1200-T.dat
180-T.dat
90-T.dat
3-T.dat
这系列字符串中,每行的字符数都不同,有10个字符,9个字符、8个字符、7个字符。我想把这里面的数字提取出来,请问应该怎么办?
请指点一下,谢谢!
回复列表 (共4个回复)
沙发
jstzhurj [专家分:4680] 发布于 2010-09-26 15:23:00
抛砖引玉:
program main
implicit none
character(len=30),dimension(4)::a
integer i,j,length,pos
data a /'1200-T.dat','180-T.dat','90-T.dat','3-T.dat'/
do i =1,4
length=len(trim(a(i)))
read(a(i)(1:length-6),*) j
write(*,*) j
enddo
do i =1,4
pos=index(a(i),'-')
read(a(i)(1:pos-1),*) j
write(*,*) j
enddo
end program
程序里面提供了两种方法,有其他方法的不妨拿出来大家交流交流。
板凳
299792458 [专家分:60] 发布于 2010-09-26 16:06:00
lz,这些字符串有确定的规律吗?比如后缀都是'-T.dat',或者要提取的是前N个连续数字之类的
3 楼
大智若愚 [专家分:90] 发布于 2010-09-26 16:32:00
谢谢jstzhurj老师!谢谢你抛的金砖!o(∩_∩)o...
我采用了第一种方法。
4 楼
大智若愚 [专家分:90] 发布于 2010-09-26 16:34:00
嗯,后缀都是'-T.dat'
要忙工作了,后天要交报告,我现在还在处理数据,呜呜……
我来回复