注册 登录
编程论坛 VFP论坛

求助:重复字符的统计

fdqzy 发布于 2020-06-22 15:16, 3137 次点击
见附件和附件中说明,谢谢!
补充:字符串中,2个以上的相同字符算1个重复,重复的个数是指有几个字符在串中有重复。
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2020-6-22 15:22编辑过]

16 回复
#2
sdta2020-06-22 15:57
重复是指相邻N个字符与另外N个相邻字符相同
"ab" = "ba" 这种能叫重复吗
希望楼主能规范下"重复"的定义
拿点真货来,不要拿扑克牌当公交卡

[此贴子已经被作者于2020-6-22 16:04编辑过]

#3
fdqzy2020-06-22 16:49
回复 2楼 sdta
不好意思!
这里的重复是指,某字符在字符串里有2个以上就算重复。如'a'在'ababa'中有2个以上就统计为"重复1"(即1个字符重复),但'b'在这个串中也重复,即‘a’和'b'都在这个字符串都有重复,就统计为“重复2”......
重复字符'ab"是指在一个字符串中,'a'和'b'都有重复,即“重复2”
#4
zhken2020-06-22 17:16
描述不大明白,有点混乱吧. 最后一行 'a'和'b'都有重复,即“重复2”  应该描述为 重复3吧
#5
fdqzy2020-06-22 17:24
回复 4楼 zhken
不好意思,ab在' abcba'中重复,是指'a'在 ' abcba'中重复,'b'在' abcba'也有重复,统计为“重复2”.
总的就是,在字符串中,分别找出有重复的字符,最后有几个字符在同一串中重复,就统计重复数为几。
谢谢!

[此贴子已经被作者于2020-6-22 17:25编辑过]

#6
fdqzy2020-06-22 17:43
重复2是指有2个字符在串中重复,由于字段名不能以数字开头,故写成“重复2”,其实就是有2个重复的意思。
#7
zhken2020-06-22 17:54
只有本站会员才能查看附件,请 登录
#8
fdqzy2020-06-22 21:28
只有本站会员才能查看附件,请 登录
#9
吹水佬2020-06-22 21:30
只有本站会员才能查看附件,请 登录

DIMENSION arr[128]
SELECT M, 0000 重复数, 重复字符 FROM cf INTO CURSOR tmp READWRITE
SELECT tmp
BLANK FIELDS 重复字符 ALL
SCAN
    STORE 0 TO arr
    cM = ALLTRIM(M)
    FOR i=1 TO LEN(cM)
        ch = ASC(SUBSTR(cM,i,1))  
        arr[ch] = arr[ch] + 1
    ENDFOR
    FOR i=1 TO 128
        IF arr[i] > 1
            REPLACE 重复数 WITH 重复数+1, 重复字符 WITH 重复字符-CHR(i)
        ENDIF
    ENDFOR
ENDSCAN
GO TOP
BROWSE
#10
fdqzy2020-06-22 21:31
图中m下j应为abacd  
#11
fdqzy2020-06-22 21:52
回复 9楼 吹水佬
辛苦了,也可解决一些问题!
谢谢!!!
看不懂,慢慢学!

[此贴子已经被作者于2020-6-22 21:58编辑过]

#12
fdqzy2020-06-22 22:06
回复 9楼 吹水佬
统计结果能否还原为原表结构样式?
#13
瓜瓜19902020-06-23 00:28
程序代码:
SELECT M,重复字符,CAST(0 AS i) 重复数  FROM cf INTO table temp
SCAN
    cstr=M
    ccf=''
    DO WHILE !EMPTY(cstr)
        nlen=LENC(cstr)
        cchr=LEFTc(cstr,1)
        cstr=STRTRAN(cstr,cchr,'')
        nlen=nlen-LENC(cstr)
        IF nlen>1 AND !EMPTY(cchr)
            ccf=ccf+cchr    &&列出重复字符   
        ENDIF
    ENDDO
    replace 重复字符 WITH ccf, 重复数 WITH LENC(ccf)
ENDscan
BROWSE

只有本站会员才能查看附件,请 登录

你的表结构不合理,重复字符多的话,列可能会超出限制.可以单独设计个数据导出

[此贴子已经被作者于2020-6-23 00:32编辑过]

#14
吹水佬2020-06-23 07:45
以下是引用fdqzy在2020-6-22 22:06:55的发言:

统计结果能否还原为原表结构样式?

要看看实际数据才好说
原表结构样式做类似数据统计有可能会出问题
#15
fdqzy2020-06-23 11:18
回复 14楼 吹水佬
版主:能否在代码中加点注释,重复数和重复字符从哪里来,看不懂,谢谢!
#16
吹水佬2020-06-23 11:55
以下是引用fdqzy在2020-6-23 11:18:57的发言:

版主:能否在代码中加点注释,重复数和重复字符从哪里来,看不懂,谢谢!

只是一个简单的示例,取字符码作数组下标来统计,但对于字符集不确定的来说有兼容性问题。
比较通用的做法象13楼的方法,对多数字符集来说兼容性较好。
#17
fdqzy2020-06-24 17:27
感谢二位,以后多请教!!!
1