- 主题:[求助]求一个判断的算法
很简单啊,base64 的字符集合是固定的。
json里面必然有 {} 和几乎肯定有 冒号,然后是大概率有逗号,最后是双引号,
方括号。
中间那个必须要有等号。
【 在 casbupt (想不上班有钱赚) 的大作中提到: 】
: 一个字符串,可能是一段base64, 也可能是a=b&c=d&e=f这种形式,也可能是一个json,还有可能是其他几种已知格式的类型。
: 是否有办法只遍历一次(尽可能快地) 就判断出这个字符串是哪种类型?
--
修改:hoodlum FROM 211.95.56.*
FROM 211.95.56.*
这也简单,在 base64 上面,= 必然位于结尾,而且后面要么是 = 要么是
结束符。
而 a=b 这个,= 后面必须是普通字符且不能是 = ,这个base64不满足。
【 在 one4all4one (one4all4one) 的大作中提到: 】
: =不能作为判断2,因为base64的填位字符正好就是=
: 但是{,[,",&,这些base64是没有的
--
FROM 211.95.56.*
实时的解析没多大的意义(且只有 base64 适合这样),
而且如果类型判断错了还白解析了。
【 在 here080 (hero080) 的大作中提到: 】
: 这么说吧,我有99.9%的信心认为“尽可能快”这个是假需求。
: 换句话说,以下这么实现肯定满足你的需求:
: 1. 对每种格式的文件写一个流测试器,不叫做:
: ...................
--
修改:hoodlum FROM 211.95.56.*
FROM 211.95.56.*