问题描述
如图,数据我读取到一个数组了,每行为一个元素,上图的数字的类型为single。现在我想把每行的字符串分割然后赋值给六个数组,就是第一行,我得到a(0)、b(0)、c(0)、d(0)、e(0)、f(0),第二行得到a(1)、b(1)、c(1)、d(1)、e(1)、f(1),以此类推。FF在的数组,元素全部都是FF,这个数组我就不要,比如a(0)=FF、c(0)=FF,那我只需要bdef,而FF的位置不定,可能是在d,可能在b,可能abc都是FF。问题是:1、每行的字符串,我该怎么分割得到我想要的数组元素呢?split?2、分割得到的元素怎么才能分别给不同的数组的元素赋值呢?这问题才纠结。
解决方案
解决方案二:
用两组数组第一组,即是你上面提到的一组,a,b,c,d,e,f,6个第二组,为新增的12个,AA,BB,CC,DD,EE,FF,GG.......取值:AA(0)=f,BB(0)=F,CC(0)=F,DD(0)=F,EE(0)=F,FF(0)=F,GG(0)=4,HH(0)=5然后转换:ifAA(0)=FTHENa(0)=AA(0)+BB(0)elsea(0)=AA(0)END输出时,用a(0),b(0)...
解决方案三:
每行固定都有三个数字,三个FF么?是否有规律?
解决方案四:
理解错了,给你写一个函数,
解决方案五:
都不是固定的,我用split也解决问题了。直接分割完就赋值给不同数组了。都想问问能不能给自己留点积分,积分都没了。引用2楼redzijian的回复:
每行固定都有三个数字,三个FF么?是否有规律?
解决方案六:
求函数,我学习学习。引用3楼myhongye的回复:
理解错了,给你写一个函数,
解决方案七:
你都搞出来了呢
解决方案八:
你可以先判断是否=F的
解决方案九:
假如有“FF45FF3F”,你是想取出为,453对吗
解决方案十:
取出“45”,“3”这才对。正在整理这个结构呢引用8楼myhongye的回复:
假如有“FF45FF3F”,你是想取出为,453对吗
你是说在字符串里去判断么?还是在数组里判断?字符串里判断,感觉会比较复杂,后面数组不好赋值。数组里判断的话,我只需要判断每个数组的第一个元素就行。引用7楼myhongye的回复:
你可以先判断是否=F的
解决方案十一:
数组判断用循环可直接做,字符串,你可以用s.Replace("FF","")
解决方案十二:
关键是FF不是固定的字母,是吧?
解决方案十三:
是固定的,只会出现“FF”,没有别的字母,其他的都是single数值引用11楼redzijian的回复:
关键是FF不是固定的字母,是吧?
解决方案十四:
我都没看明白题意
解决方案十五:
这种一般是要比较精确的结果,要求容错,并留下冗余拓展的余地我个人会这怎么处理1、先对所有字面上的类型,都转为string类型2、对每行的string进行标准格式化,例如FF,FF,FF,4,5,6无数字或者多数字用其他字符代替并留下余地3、进行分割赋予数组这样会损失一些性能,但是个人感觉可靠一些不是很喜欢直接使用正则进行分割
解决方案:
引用14楼puler的回复:
这种一般是要比较精确的结果,要求容错,并留下冗余拓展的余地我个人会这怎么处理1、先对所有字面上的类型,都转为string类型2、对每行的string进行标准格式化,例如FF,FF,FF,4,5,6无数字或者多数字用其他字符代替并留下余地3、进行分割赋予数组这样会损失一些性能,但是个人感觉可靠一些不是很喜欢直接使用正则进行分割
对,应该先弄成格式标准的字符串