一种弹幕数据的校验方法、装置、终端及存储介质与流程

文档序号:17009974发布日期:2019-03-02 02:12阅读:168来源:国知局
一种弹幕数据的校验方法、装置、终端及存储介质与流程

本发明实施例涉及弹幕技术领域,尤其涉及一种弹幕数据的校验方法、装置、终端及存储介质。



背景技术:

随着智能终端的快速发展,各种应用软件被开发应用于智能终端中。一些应用软件比如直播软件、视频播放软件中往往具有弹幕接收、解析和推送等弹幕功能。在开发这些应用软件的过程中,需要对服务器下发的弹幕数据进行相关测试,以确定弹幕功能是否正常运行。

目前,基于android操作系统的应用软件开发中,服务器在根据预设弹幕协议构建完成弹幕数据之后,往往直接将构建的弹幕数据下发至客户端,并且客户端在接收到弹幕数据时,也是直接对弹幕数据进行解析和分发处理。

可见,在现有的弹幕数据下发过程以及接收过程中,服务器和客户端均未对弹幕数据进行任何校验,从而当弹幕数据存在异常情况时,便会导致弹幕测试流程出现错误,甚至导致客户端出现系统崩溃等问题,严重影响了弹幕测试效率。



技术实现要素:

本发明实施例提供了一种弹幕数据的校验方法、装置、终端及存储介质,以对弹幕数据进行完整性校验,从而保证弹幕数据可以被正常解析,避免导致客户端出现系统崩溃等问题。

第一方面,本发明实施例提供了一种弹幕数据的校验方法,包括:

获取预设字符串结构的目标弹幕数据,其中,所述预设字符串结构包含第一预设标识符和第二预设标识符;

调用存储所述目标弹幕数据的弹幕数据对象中的字符验证函数,对所述目标弹幕数据中的首位字符和末位字符进行字符验证;

若字符验证成功,则调用所述弹幕数据对象中的字符串分割函数,将所述目标弹幕数据以所述第一预设标识符进行分割,确定字符串数组;

根据所述字符串数组的数组信息,确定所述目标弹幕数据中的第一预设标识符数量和第二预设标识符数量;

若所述第一预设标识符数量和所述第二预设标识符数量满足预设校验条件,则确定所述目标弹幕数据校验成功。

第二方面,本发明实施例还提供了一种弹幕数据的校验装置,包括:

目标弹幕数据获取模块,用于获取预设字符串结构的目标弹幕数据,其中,所述预设字符串结构包含第一预设标识符和第二预设标识符;

字符验证模块,用于调用存储所述目标弹幕数据的弹幕数据对象中的字符验证函数,对所述目标弹幕数据中的首位字符和末位字符进行字符验证;

字符串数组确定模块,用于若字符验证成功,则调用所述弹幕数据对象中的字符串分割函数,将所述目标弹幕数据以所述第一预设标识符进行分割,确定字符串数组;

预设标识符数量确定模块,用于根据所述字符串数组的数组信息,确定所述目标弹幕数据中的第一预设标识符数量和第二预设标识符数量;

预设标识符数量校验模块,用于若所述第一预设标识符数量和所述第二预设标识符数量满足预设校验条件,则确定所述目标弹幕数据校验成功。

第三方面,本发明实施例还提供了一种终端,所述终端包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所提供的弹幕数据的校验方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所提供的弹幕数据的校验方法。

本发明实施例通过获取包含第一预设标识符和第二预设标识符的预设字符串结构的目标弹幕数据,并将目标弹幕数据存储至弹幕数据对象后,调用弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证;若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组;根据字符串数组的数组信息,可以同时确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量,并在第一预设标识符数量和第二预设标识符数量满足预设校验条件时,确定目标弹幕数据校验成功。通过采用上述技术方案,对预设字符串结构的目标弹幕数据进行了完整性校验,从而在目标弹幕数据校验成功后,可以对目标弹幕数据进行正常解析,进而避免了因弹幕数据异常而导致客户端出现系统崩溃等问题,提高了弹幕测试效率。

附图说明

图1是本发明实施例一提供的一种弹幕数据的校验方法的流程图;

图2是本发明实施例二提供的一种弹幕数据的校验方法的流程图;

图3是本发明实施例三提供的一种弹幕数据的校验装置的结构示意图;

图4是本发明实施例四提供的一种终端的结构示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

实施例一

图1为本发明实施例一提供的一种弹幕数据的校验方法的流程图,本实施例可适用于对包含两个预设标识符的预设字符串结构的弹幕数据进行完整性校验的情况,尤其可以用于弹幕服务器中根据预设弹幕协议生成弹幕数据后,对生成的弹幕数据进行校验的应用场景中,同时也可以用于android客户端中对弹幕服务器下发的弹幕数据进行校验的应用场景中。该方法可以由弹幕数据的校验装置来执行,该装置可以由软件和/或硬件的方式来实现,可集成于弹幕服务器或者搭载了android系统的具有弹幕功能的终端中,比如智能手机、平板电脑、智能电视或者笔记本电脑等智能终端。如图1所示,该方法具体包括以下步骤:

s110、获取预设字符串结构的目标弹幕数据,其中,预设字符串结构包含第一预设标识符和第二预设标识符。

其中,弹幕数据可以是指将弹幕参数信息按照预设弹幕协议进行封装后获得的字符串string类型的数据。预设弹幕协议可以根据实际情况和用户需求进行预先设置,用于规定弹幕数据的传输数据结构,以使弹幕服务器与客户端之间可以进行数据传输。预设弹幕协议可以规定一种或多种数据结构。预设字符串结构可以是预设弹幕协议中规定的一种数据结构。预设字符串结构与预设弹幕协议相对应。目标弹幕数据可以是指待校验的预设字符串结构的弹幕数据。

本实施例的预设字符串结构中包含两种不同的预设标识符,即第一预设标识符和第二预设标识符。预设标识符是基于预设弹幕协议规定的预设字符串结构中具有特定含义的字符或字符串。预设标识符可以包括一个预设字符,也可以包括多个预设字符,其中,预设字符可以是预先定义的一种数字、字母或特殊符号等。示例性地,预设标识符可以是预设字符串结构中划分每个键值对信息的预设分隔符,比如单斜杠“\”、“/”、双斜杠“\\”和“//”等;也可以是连接键值对信息中的键信息和值信息的预设连接符,比如“-”、“@”、“,”“==”和“@=”等。

需要注意的是,根据预设弹幕协议的规定,生成目标弹幕数据所根据的弹幕参数信息中不包含与第一预设标识符相同的字符串。示例性地,若弹幕参数信息以键值对的方式存在,则每个键值对信息中均不包含与第一预设标识符相同的字符串,以便适用于后续的校验方法。优选地,第一预设标识符可以为“/”,以增加与弹幕参数信息之间的区分度,提高校验准确度。

可选地,s110包括:获取待校验弹幕数据以及待校验弹幕数据对应的待校验数据标识;将待校验数据标识与预设字符串结构对应的标识集合中的数据标识进行匹配;若匹配成功,则将待校验弹幕数据确定为目标弹幕数据。

其中,待校验弹幕数据可以是将弹幕参数信息按照预设弹幕协议进行封装后获得的任一数据结构的弹幕数据。每个待校验弹幕数据均对应一个待校验数据标识。待校验数据标识用于对待校验弹幕数据进行唯一标识,以通过待校验数据标识可以确定待校验弹幕数据的数据结构。预设字符串结构对应的标识集合可以包括:数据结构为预设字符串结构的所有弹幕数据对应的数据标识。

具体地,若预设弹幕协议规定了多种数据结构,则在生成某个弹幕数据时,可以预先检测生成的弹幕数据的数据结构是否为预设字符串结构,若是,则将该弹幕数据对应的数据标识添加至预设字符串结构对应的标识集合中,从而将生成的数据结构为预设字符串结构的弹幕数据对应的数据标识均添加至该标识集合中,以便进行后续的校验操作。在获取待校验弹幕数据对应的待校验数据标识后,可以将待校验数据标识与预设字符串结构对应的标识集合中的数据标识进行逐一匹配,若待校验数据标识与标识集合中的任一数据标识匹配成功,则表明该待校验弹幕数据的数据结构为预设字符串结构,此时可以将该待校验弹幕数据确定为目标弹幕数据,以便对目标弹幕数据进行完整性校验。若待校验数据标识与标识集合中的每个数据标识均匹配失败,则表明该待校验弹幕数据的数据结构不是预设字符串结构,此时可以对下一待校验弹幕数据进行标识匹配,直至获取预设字符串结构的目标弹幕数据。

s120、调用存储目标弹幕数据的弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证。

其中,弹幕数据对象是一个用于存储目标弹幕数据的对象。本实施例中的目标弹幕数据是一个string类型的数据,从而弹幕数据对象为一个string对象。字符验证函数可以是预先定义的,用于对目标弹幕数据中的首位字符和末位字符进行验证的函数。

具体地,若根据预设字符串结构确定准确完整的弹幕数据中的首位字符为第一预设字符,末位字符为第二预设字符,则可以通过调用弹幕数据对象中的字符验证函数,验证目标弹幕数据中的首位字符是否为第一预设字符,以及末位字符是否为第二预设字符。示例性地,以第一预设字符为函数输入参数,调用字符验证函数,检测目标弹幕数据中的首位字符是否为第一预设字符,若不是,则表明首位字符验证失败,也就是目标弹幕数据是一条不完整的数据,即不合格数据,此时可以直接确定目标弹幕数据校验失败;若检测目标弹幕数据中的首位字符是第一预设字符,则表明首位字符验证成功,此时可以以第二预设字符为函数输入参数,调用字符验证函数,检测目标弹幕数据中的末位字符是否为第二预设字符,若是,则表明目标弹幕数据中的首位字符和末位字符均是合法的,此时可以确定字符验证成功;若否,则表明目标弹幕数据是一条不完整的数据,此时可以直接确定目标弹幕数据校验失败。

s130、若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组。

其中,字符串分割函数是预先定义的,用于将目标弹幕数据进行分割成字符串数组的函数。示例性地,若将弹幕数据对象标记为danmustr,则弹幕数据对象中的字符串分割函数可以为:danmustr.split(),从而可以将弹幕数据对象danmustr中存储的目标弹幕数据分割成一个字符串数组。

具体地,本实施例可以以第一预设标识符作为字符串分割函数的输入参数,调用字符串分割函数,将弹幕数据对象中的目标弹幕数据以第一预设标识符进行分割,并将分割后获得的多个字符串数据构成字符串数组。示例性地,假设弹幕数据对象danmustr中存储的目标弹幕数据为:adbcebde,预设标识符为b,则通过调用splitsrtarray=danmustr.split(“\b”),将目标弹幕数据以b进行分割获得的字符串数据存储至字符串数组splitsrtarray中,即splitsrtarray中的信息为:{“ad”,“ce”,“de”}。

需要注意的是,由于目标弹幕数据中的弹幕参数信息中均不包含与第一预设标识符相同的字符串,从而在以第一预设标识符对目标弹幕数据进行分割时,不会对弹幕参数内容进行分割,避免造成误分割的情况,以便可以利用分割方式准确计算目标弹幕数据中的第一预设标识符数量。

s140、根据字符串数组的数组信息,确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量。

其中,数组信息可以是字符串数组中的每个元素信息、元素个数等信息。具体地,本实施例可以利用字符串数组的数组信息,同时确定出目标弹幕数据中的第一预设标识符数量和第二预设标识符数量,大大简化了标识符数量的确定过程,以提高检验效率。

示例性地,s140可以包括:根据字符串数组的数组长度,确定目标弹幕数据中的第一预设标识符数量;将字符串数组中的每个字符串元素存储至对应的字符串对象中,并调用各字符串对象中的标识符查找函数,确定目标弹幕数据中的第二预设标识符数量。

其中,数组长度是指字符串数组中的元素个数。标识符查找函数是预先定义的,用于查找拼接字符串对象存储的字符串数据中是否包含输入参数的函数。需要注意的是,标识符查找函数只能用于确定字符串数据中是否包含输入参数,无法确定字符串数据中包含的输入参数的个数,从而弹幕参数信息中无论是否包含与第二预设标识符相同的字符串,均可以利用标识符查找函数准确地确定目标弹幕数据中第二预设标识符数量。

具体地,本实施例可以根据字符串数组的长度属性,直接获取字符串数组的数组长度,即分割后的字符串数据的个数。示例性地,通过调用splitsrtarray.length,可以获得字符串数组splitsrtarray的数组长度。对于准确完整的目标弹幕数据而言,目标弹幕数据中的首位字符和末位字符均不会是第一预设标识符,并且目标弹幕数据中的每个第一预设标识符的前后均存在一个字符串数据,从而分割后的字符串数据的数量比第一预设标识符数量多1,因此可以将字符串数组的数组长度减1得到的结果确定为第一预设标识符数量。

本实施例将字符串数组中的每个字符串元素存储至对应的字符串对象中,即字符串元素与字符串对象一一对应,通过以第二预设标识符作为函数输入参数,调用每个字符串对象中的标识符查找函数,检测每个字符串对象存储的字符串元素是否包含第二预设标识符,从而统计目标弹幕数据中的第二预设标识符数量。本实施例可以一次性地调用每个字符串对象中的标识符查找函数;也可以通过循环遍历的方式,于每次循环周期中,调用字符串对象中的标识符查找函数,以降低运行内存,提升计算速度。

s150、若第一预设标识符数量和第二预设标识符数量满足预设校验条件,则确定目标弹幕数据校验成功。

其中,预设校验条件是指在弹幕数据完整时,第一预设标识符数量和第二预设标识符数量需要满足的条件。示例性地,若预先获取了某个目标弹幕数据对应的第一预设标识符的准确数量为10,第二预设标识符的准确数量为11,则预设校验条件可以为:目标弹幕数据中的第一预设标识符数量为10,第二预设标识符数量为11。

具体地,若第一预设标识符数量和第二预设标识符数量满足预设检验条件,则表明目标弹幕数据是一条完整的数据,可以被正常解析,此时可以确定目标弹幕数据校验成功。若第一预设标识符数量和第二预设标识符数量不满足预设检验条件,则表明目标弹幕数据是一条非法数据,此时确定目标弹幕数据校验失败。

需要注意的是,本实施例可以将步骤s120-s150所提供的功能进行封装为一个弹幕校验函数,从而只需将弹幕数据对象作为弹幕校验函数的输入对象,通过调用弹幕校验函数,即可实现目标弹幕数据的校验过程,使得弹幕校验更加便捷。示例性地,弹幕校验函数可以定义为:publisstaticbooleancheckdanminfo(stringdanmustr)。其中,checkdanminfo是弹幕校验函数的函数名称,danmustr是字符串string类型的弹幕数据对象,弹幕校验函数checkdanminfo的返回值是一个布尔boolean类型的对象。若目标弹幕数据校验成功,则弹幕校验函数checkdanminfo可以通过调用returntrue返回true,若目标弹幕数据校验失败,则弹幕校验函数checkdanminfo可以调用returnfalse返回false。弹幕校验函数checkdanminfo具有公有权限修饰符public和静态类型修饰符static,以便可以直接通过类调用checkdanminfo,提高了弹幕校验函数调用的便捷性。

可选地,在弹幕服务器向android客户端下发目标弹幕数据之前,可以利用本实施例所提供的弹幕数据的校验方法进行校验,并在目标弹幕数据校验成功后,再进行目标弹幕数据的下发操作,以保证弹幕服务器下发的目标弹幕数据为准确完整的数据。android客户端接收下发的目标弹幕数据后,可以利用本实施例所提供的弹幕数据的校验方法进行再次校验,并在目标弹幕数据校验成功后,再对目标弹幕数据进行解析处理,从而可以避免因弹幕数据异常而导致客户端出现系统崩溃等问题,提高了弹幕测试效率。

本发明实施例通过获取包含第一预设标识符和第二预设标识符的预设字符串结构的目标弹幕数据,并将目标弹幕数据存储至弹幕数据对象后,调用弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证;若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组;根据字符串数组的数组信息,可以同时确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量,并在第一预设标识符数量和第二预设标识符数量满足预设校验条件时,确定目标弹幕数据校验成功。通过采用上述技术方案,对预设字符串结构的目标弹幕数据进行了完整性校验,从而在目标弹幕数据校验成功后,可以对目标弹幕数据进行正常解析,进而避免了因弹幕数据异常而导致客户端出现系统崩溃等问题,提高了弹幕测试效率。

实施例二

图2为本发明实施例二提供的一种弹幕数据的校验方法的流程图,本实施例在上述实施例的基础上,对预设字符串结构为“以预设开始符作为首位字符,以第一预设标识符划分各键值对信息,以第二预设标识符连接键值对信息中的键信息和值信息,以预设结束符作为末位字符”的目标弹幕数据的校验过程进行了详细描述,并且利用循环校验的方式确定目标弹幕数据中的第二预设标识符数量。其中与上述各实施例相同或相应的术语的解释在此不再赘述。

参见图2,本实施例提供的弹幕数据的校验方法包括以下步骤:

s210、获取预设字符串结构的目标弹幕数据。

其中,预设字符串结构为:以预设开始符作为首位字符,以第一预设标识符划分各键值对信息,以第二预设标识符连接键值对信息中的键信息和值信息,以预设结束符作为末位字符,其中,键值对信息不包含与第一预设标识符相同的字符串。

在本实施例中,准确完整的目标弹幕数据中的首位字符为预设开始符,末位字符为预设结束符,并且弹幕参数信息以键值对的形式存在,即首位字符与末位字符之间包括多个键值对信息。第一预设标识符用于划分弹幕数据中的每个键值对信息,第二预设标识符用于连接键值对信息中的键信息和值信息。目标弹幕数据中的最后一个键值对信息中的值信息与预设结束符也可以利用第一预设标识符进行划分,以便区分值所包含的内容。本实施例中的预设字符串结构的规定方式可以更加便于数据传输。示例性地,预设开始符可以是但不限于为左花括号“{”、左圆括号“(”或左中括号“[”。为了增加与字符串本体内容之间的区分度,优选为左花括号“{”。预设结束符可以是但不限于右花括号“}”、右圆括号“)”或右中括号“]”,优选为右花括号“}”。

需要注意的是,键值对信息可以包含英文字符、中文字符和/或某些特殊字符。在本实施例中,根据预设弹幕协议的规定,每个键值对信息中的值信息和键信息均不会包含与第一预设标识符相同的字符串,而每个键值对信息中的值信息可以不包含与第二预设标识符相同的字符串,也可以包含与第二预设标识符相同的字符串。示例性地,若以“{”为预设开始符,以“}”为预设结束符,以“/”为第一预设标识符,以“@=”为第二预设标识符,则预设字符串结构的目标弹幕数据可以为:

{type@=uenter/rid@=104838/uid@=20080138/wgei@=0/},其中包括四个键值对信息。第一键值对信息中的键信息为“type”,对应的值信息为“uenter”;第二键值对信息中的键信息为“rid”,对应的值信息为“104838”;第三键值对信息中的键信息为“uid”,对应的值信息为“20080138”;第四键值对信息中的键信息为“wgei”,对应的值信息为“0”,可见,每个键值对信息中均不包含与第一预设标识符或第二预设标识符相同的字符串。

预设字符串结构的目标弹幕数据也可以为:

{type@=uenter/rid@=104838/uid@=20088/avater@=www@douyu@=tv@com/wgei@=0/},其中,包括五个键值对信息,并且第四个键值对信息中的键信息为“avater”,对应的值信息为“www@douyu@=tv@com”。可见,第四个键值对信息中的值信息包含与第二预设标识符相同的字符串。根据预设弹幕协议的规定,这种弹幕数据也是合法完整的。本实施例提供的校验方法尤其可以对至少一个值信息包含与第二预设标识符相同的字符串这种弹幕数据,进行完整性校验,从而增加了校验方法的适用范围。

s220、调用第一字符验证函数,检测目标弹幕数据中的首位字符是否为预设开始符。

其中,第一字符验证函数是预先定义的,用于对目标弹幕数据中的首位字符进行校验的函数。示例性地,将弹幕数据对象标记为danmustr,若预设开始符为“{”,则调用第一字符验证函数可以是danmustr.startwith(“{”),以检测弹幕数据对象danmustr中的目标弹幕数据中的首位字符是否为“{”。

具体地,若检测目标弹幕数据中的首位字符不是预设开始符,则表明首位字符验证失败,也就是目标弹幕数据是一条不完整的数据,即不合格数据,此时可以直接确定目标弹幕数据校验失败。若检测目标弹幕数据中的首位字符是预设开始符,则表明首位字符验证成功,此时可以继续后续的字符验证操作。

s230、若首位字符为预设开始符,则调用第二字符验证函数,检测目标弹幕数据中的末位字符是否为预设结束符,若末位字符为预设结束符,则确定字符验证成功。

其中,第二字符验证函数是预先定义的,用于对目标弹幕数据中的末位字符进行校验的函数。示例性地,将弹幕数据对象标记为danmustr,若预设结束符为“}”,则可以调用第二字符验证函数可以为danmustr.endwith(“}”),以检测弹幕数据对象danmustr中的目标弹幕数据中的末位字符是否为“}”。

具体地,在目标弹幕数据的首位字符为预设开始符时,可以继续调用第二字符验证函数,检测目标弹幕数据中的末位字符是否为预设结束符,若是,则表明目标弹幕数据中的首位字符和末位字符均是合法的,此时可以确定字符验证成功;若否,则表明目标弹幕数据是一条不完整的数据,此时可以直接确定目标弹幕数据校验失败。

s240、若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组。

示例性地,若弹幕数据对象danmustr中存储的目标弹幕数据为:

{type@=uenter/rid@=104838/uid@=20088/avater@=www@douyu@=tv@com/wgei@=0/},第一预设标识符为“/”,则通过调用splitsrtarray=danmustr.split(“/”),将目标弹幕数据以“/”进行分割获得的字符串数据存储至字符串数组splitsrtarray中,即splitsrtarray中的字符串元素分别为:“{type@=uenter”、“rid@=104838”、“uid@=20088”、“avater@=www@douyu@=tv@com”、“wgei@=0”和“}”。

s250、根据字符串数组的数组长度,确定目标弹幕数据中的第一预设标识符数量。

s260、将字符串数组中的第一个字符串元素作为当前字符串元素。

其中,当前字符串元素是当前时刻字符串数组中的一个字符串元素。在第一次循环周期内,将字符串数组中的第一个字符串元素作为当前字符串元素。

s270、以第二预设标识符为函数输入参数,调用当前字符串元素对应的字符串对象中的标识符查找函数,确定当前字符串元素是否包含第二预设标识符,若是,则预设的全局变量进行自加操作。

其中,全局变量用于存储包含第二预设标识符的字符串元素的个数,即目标弹幕数据中的第二预设标识符数量。全局变量可以预先定义为:privateintsplitcount=0。其中,splitcount是全局变量的名称,全局变量splitcount是一个初始值为0的整型变量。全局变量splitcount具有私有权限修饰符private,以保证只有全局变量所属的类及其实例化对象才可以进行调用。

具体地,若当前字符串元素包含第二预设标识符,则预设的全局变量进行自加操作,即全局变量的变量值累加1。示例性地,假设第二预设标识符为“@=”,则可以通过以“@=”为函数输入对象,调用当前字符串元素对应的字符串对象tmpstr中的标识符查找函数tmpstr.contains(“@=”),查询当前字符串元素中是否包含“@=”,若是,则splitcount进行自加操作。需要注意的是,对于当前字符串元素为“avater@=www@douyu@=tv@com”而言,第二预设标识符的数量应该为1,而不是2,若利用与第二预设标识符进行字符匹配的方式,则无法准确地确定第二预设标识符的数量,从而本实施例通过调用标识符查找函数,只要当前字符串元素包含第二预设标识符,全局变量便累加1,从而可以更加准确地确定第二预设标识符的数量。

s280、检测当前字符串元素是否为字符串数组中的最后一个字符串元素,若否,则进入步骤s290;若是,则进入步骤s291。

具体地,通过检测当前字符串元素是否为字符串数组中的最后一个字符串元素,来确定循环遍历是否结束。示例性地,当前字符串元素splitsrtarray[index]中数组索引号index的取值范围为:0≤index≤splitsrtarray.length-1,其中splitsrtarray.length表示字符串数组的长度。

s290、依据字符串数组的元素顺序,将当前字符串元素的下一字符串元素更新为当前字符串元素,并进入步骤s270。

具体地,在当前字符串元素不是字符串数组中的最后一个字符串元素时,表明还未遍历结束,此时基于字符串数组中的元素顺序,将当前字符串元素的下一个字符串元素更新为当前字符串元素,并进入步骤s270,以便可以检测下一个字符串元素中是否包含第二预设标识符。

s291、将全局变量的变量值确定为目标弹幕数据中的第二预设标识符数量。

具体地,在当前字符串元素是字符串数组中的最后一个字符串元素时,表明遍历结束,此时可以将全局变量中存储的变量值直接确定为目标弹幕数据中的第二预设标识符数量。

s292、若第一预设标识符数量与第二预设标识符数量相等,则确定目标弹幕数据校验成功。

其中,通过对预设字符串结构的分析,可以得出:若目标弹幕数组完整,则第一预设标识符数量与第二预设标识符数量相等,即预设校验条件为:第一预设标识符数量等于第二预设标识符数量。

具体地,若第一预设标识符数量与第二预设标识符数量相等,则表明满足预设校验条件,此时可以确定目标弹幕数据校验成功。若第一预设标识符数量与第二预设标识符数量不相等,则可以确定目标弹幕数据校验失败。

本实施例的技术方案,在预设字符串结构为:以预设开始符作为首位字符,以第一预设标识符划分各键值对信息,以第二预设标识符连接键值对信息中的键信息和值信息,以预设结束符作为末位字符,并且每个键值对信息均不包含与第一预设标识符相同的字符串,以及所有值信息均不包含与第二预设标识符相同的字符串,或者至少一个值信息包含与第二预设标识符相同的字符串时,获得该预设字符串结构的目标弹幕数据后,通过在首位字符和末位字符检验成功时,根据字符串数组的数组长度确定第一预设标识符数量;基于循环遍历的方式,根据字符串数组中的每个字符串元素可以更加快速地确定第二预设标识符数量,并且通过比较第一预设标识符的数量与第二预设标识符的数量是否相等来确定目标弹幕数据的校验结果,使得弹幕校验更加便捷,从而提高了校验效率。

实施例三

图3为本发明实施例三提供的一种弹幕数据的校验装置的结构示意图,本实施例可适用于对预设字符串结构的弹幕数据进行完整性校验的情况,该装置具体可以包括:目标弹幕数据获取模块310、字符验证模块320、字符串数组确定模块330、预设标识符数量确定模块340和预设标识符数量校验模块350。

其中,目标弹幕数据获取模块310,用于获取预设字符串结构的目标弹幕数据,其中,预设字符串结构包含第一预设标识符和第二预设标识符;字符验证模块320,用于调用存储目标弹幕数据的弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证;字符串数组确定模块330,用于若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组;预设标识符数量确定模块340,用于根据字符串数组的数组信息,确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量;预设标识符数量校验模块350,用于若第一预设标识符数量和第二预设标识符数量满足预设校验条件,则确定目标弹幕数据校验成功。

可选地,预设字符串结构为:以预设开始符作为首位字符,以第一预设标识符划分各键值对信息,以第二预设标识符连接键值对信息中的键信息和值信息,以预设结束符作为末位字符,其中,键值对信息不包含与第一预设标识符相同的字符串。

可选地,目标弹幕数据获取模块310,具体用于:

获取待校验弹幕数据以及待校验弹幕数据对应的待校验数据标识;将待校验数据标识与预设字符串结构对应的标识集合中的数据标识进行匹配;若匹配成功,则将待校验弹幕数据确定为目标弹幕数据。

可选地,预设标识符数量确定模块340,包括:

第一预设标识符数量确定单元,用于根据字符串数组的数组长度,确定目标弹幕数据中的第一预设标识符数量;

第二预设标识符数量确定单元,用于将字符串数组中的每个字符串元素存储至对应的字符串对象中,并调用各字符串对象中的标识符查找函数,确定目标弹幕数据中的第二预设标识符数量。

可选地,第二预设标识符数量确定单元,具体用于:

将字符串数组中的第一个字符串元素作为当前字符串元素;

以第二预设标识符为函数输入参数,调用当前字符串元素对应的字符串对象中的标识符查找函数,确定当前字符串元素是否包含第二预设标识符,若是,则预设的全局变量进行自加操作;

检测当前字符串元素是否为字符串数组中的最后一个字符串元素,若否,则依据字符串数组的元素顺序,将当前字符串元素的下一字符串元素更新为当前字符串元素,并返回执行以第二预设标识符为函数输入参数,调用存储当前字符串元素的字符串对象中的标识符查找函数的操作;

若是,则将全局变量的变量值确定为目标弹幕数据中的第二预设标识符数量。

可选地,字符验证模块320包括字符验证函数执行单元,用于通过如下步骤实现对目标弹幕数据中的首位字符和末位字符进行字符验证的功能:

调用第一字符验证函数,检测目标弹幕数据中的首位字符是否为预设开始符;若首位字符为预设开始符,则调用第二字符验证函数,检测目标弹幕数据中的末位字符是否为预设结束符;若末位字符为预设结束符,则确定字符验证成功。

可选地,预设标识符数量校验模块350,具体用于:

若第一预设标识符数量与第二预设标识符数量相等,则确定目标弹幕数据校验成功。

本发明实施例所提供的弹幕数据的校验装置可执行本发明任意实施例所提供的弹幕数据的校验方法,具备执行弹幕数据的校验方法相应的功能模块和有益效果。

值得注意的是,上述弹幕数据的校验装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。

实施例四

图4是本发明实施例四提供的一种终端的结构示意图。参见图4,该终端包括:

一个或多个处理器410;

存储器420,用于存储一个或多个程序;

当一个或多个程序被一个或多个处理器410执行,使得一个或多个处理器410实现如上述实施例中任一实施例提出的弹幕数据的校验方法,该方法包括:

获取预设字符串结构的目标弹幕数据,其中,预设字符串结构包含第一预设标识符和第二预设标识符;

调用存储目标弹幕数据的弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证;

若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组;

根据字符串数组的数组信息,确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量;

若第一预设标识符数量和第二预设标识符数量满足预设校验条件,则确定目标弹幕数据校验成功。

图4中以一个处理器410为例;终端中的处理器410和存储器420可以通过总线或其他方式连接,图4中以通过总线连接为例。

存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的弹幕数据的校验方法对应的程序指令/模块(例如,弹幕数据的校验装置中的目标弹幕数据获取模块310、字符验证模块320、字符串数组确定模块330、预设标识符数量确定模块340和预设标识符数量校验模块350)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行终端的各种功能应用以及数据处理,即实现上述的弹幕数据的校验方法。

存储器420主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本实施例提出的终端与上述实施例提出的弹幕数据的校验方法属于同一发明构思,未在本实施例中详尽描述的技术细节可参见上述实施例,并且本实施例具备执行弹幕数据的校验方法相同的有益效果。

实施例五

本实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例提供的弹幕数据的校验方法,该方法包括:

获取预设字符串结构的目标弹幕数据,其中,预设字符串结构包含第一预设标识符和第二预设标识符;

调用存储目标弹幕数据的弹幕数据对象中的字符验证函数,对目标弹幕数据中的首位字符和末位字符进行字符验证;

若字符验证成功,则调用弹幕数据对象中的字符串分割函数,将目标弹幕数据以第一预设标识符进行分割,确定字符串数组;

根据字符串数组的数组信息,确定目标弹幕数据中的第一预设标识符数量和第二预设标识符数量;

若第一预设标识符数量和第二预设标识符数量满足预设校验条件,则确定目标弹幕数据校验成功。

本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、smalltalk、c++,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

本领域普通技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。

注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1