本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,具體而言,涉及一種彈幕消息解析方法、裝置及電子設(shè)備。
背景技術(shù):
隨著終端設(shè)備的快速發(fā)展,視頻直播的興起,越來越多的人們能夠欣賞到各種趣味的視頻直播。直播是一個信息交互和實(shí)時性非常強(qiáng)的行業(yè),特別是文字和表情等消息的交互量非常多,有些超過幾萬甚至上十萬的直播間,彈幕刷新速度非??臁?/p>
現(xiàn)有的技術(shù)中通常直接用自定義的消息協(xié)議傳輸彈幕消息,自定義的消息就是預(yù)先定義規(guī)則將彈幕消息轉(zhuǎn)變?yōu)榻Y(jié)構(gòu)精簡字符串,但是在對字符串進(jìn)行處理時通常會存在冗余判斷和處理,進(jìn)而造成終端設(shè)備在消息量過多時,出現(xiàn)彈幕消息顯示實(shí)時性差的問題。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種彈幕消息解析方法、裝置及電子設(shè)備,以改善上述問題。
為了達(dá)到上述目的,本發(fā)明實(shí)施例提供一種彈幕消息解析方法,所述方法包括:
判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件;
在所述彈幕消息字符串滿足長度預(yù)設(shè)條件時,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串;
在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。
可選的,在上述彈幕消息解析方法中,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串的步驟包括:
判斷所述彈幕消息字符串的末尾字符是否為第一預(yù)設(shè)字符;
在所述彈幕消息字符串的末尾字符不為所述第一預(yù)設(shè)字符時,根據(jù)預(yù)設(shè)拼接函數(shù)向所述彈幕消息字符串的末尾字符后面拼接所述第一預(yù)設(shè)字符得到構(gòu)造字符串;
在所述彈幕消息字符串的末尾字符為第一預(yù)設(shè)字符時,將所述彈幕消息字符串定義為構(gòu)造字符串。
可選的,在上述彈幕消息解析方法中,在判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件的步驟之前,所述方法還包括:
在檢測到彈幕消息時,對所述彈幕消息進(jìn)行初始化得到彈幕消息字符串;
對所述彈幕消息字符串進(jìn)行復(fù)制并保存。
可選的,在上述彈幕消息解析方法中,在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典的步驟包括:
根據(jù)預(yù)設(shè)循環(huán)函數(shù)對所述構(gòu)造字符串進(jìn)行循環(huán)索引,所述循環(huán)函數(shù)進(jìn)行循環(huán)索引的次數(shù)與所述構(gòu)造字符串的長度相對應(yīng);
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第一預(yù)設(shè)字符時,創(chuàng)建一個字典,將所述第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,并在所述臨時字符串之前拼接第二預(yù)設(shè)字符。
可選的,在上述彈幕消息解析方法中,所述方法還包括:
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第三預(yù)設(shè)字符時,在該第三預(yù)設(shè)字符后面拼接第二預(yù)設(shè)字符,并創(chuàng)建一個字典,將該第二預(yù)設(shè)字符對應(yīng)的字符串存儲于該字典,并將該字典存儲于所述預(yù)設(shè)數(shù)組;
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第四預(yù)設(shè)字符時,在該第四預(yù)設(shè)字符后面拼接第一預(yù)設(shè)字符,并創(chuàng)建一個字典,將該第一預(yù)設(shè)字符對應(yīng)的字符串存儲于該字典,并將該字典存儲于所述預(yù)設(shè)數(shù)組;
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第五預(yù)設(shè)字符時,清空所述臨時字符串。
本發(fā)明還提供一種彈幕消息解析裝置,所述裝置包括:
判斷模塊:用于判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件;
處理模塊:用于在所述彈幕消息字符串滿足長度預(yù)設(shè)條件時,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串;
解析模塊:用于在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。
可選的,在上述彈幕消息解析裝置中,所述處理模塊包括:
判斷子模塊:用于判斷所述彈幕消息字符串的末尾字符是否為第一預(yù)設(shè)字符;
構(gòu)造子模塊:用于在所述彈幕消息字符串的末尾字符不為第一預(yù)設(shè)字符時,根據(jù)預(yù)設(shè)拼接函數(shù)向所述彈幕消息字符串的末尾字符后面拼接所述第一預(yù)設(shè)字符得到構(gòu)造字符串;
定義子模塊:用于在所述彈幕消息字符串的末尾字符為第一預(yù)設(shè)字符時,將所述彈幕消息字符串定義為構(gòu)造字符串。
可選的,在上述彈幕消息解析裝置中,所述解析模塊包括:
索引子模塊:用于根據(jù)預(yù)設(shè)循環(huán)函數(shù)對所述構(gòu)造字符串進(jìn)行循環(huán)索引,所述循環(huán)函數(shù)進(jìn)行循環(huán)索引的次數(shù)與所述構(gòu)造字符串的長度相對應(yīng);
解析子模塊:用于當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第一預(yù)設(shè)字符時,創(chuàng)建一個字典,將所述第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,并在所述臨時字符串之前拼接第二預(yù)設(shè)字符。
本發(fā)明還提供一種電子設(shè)備,包括處理器和存儲器及存儲在存儲器上并可在處理器上運(yùn)行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實(shí)現(xiàn)以下步驟:
判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件;
在所述彈幕消息字符串滿足長度預(yù)設(shè)條件時,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串;
在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。
本發(fā)明還提供一種計算機(jī)可讀儲存介質(zhì),其上存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實(shí)現(xiàn)上述彈幕消息解析方法的步驟。
本發(fā)明提供的一種彈幕消息解析方法、裝置及電子設(shè)備,根據(jù)滿足長度預(yù)設(shè)條件的彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串,并在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。通過上述設(shè)置能夠有效避免對彈幕消息字符串進(jìn)行冗余判斷和處理,進(jìn)而有效避免彈幕消息顯示時實(shí)時性差的問題。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對范圍的限定,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。
圖1為本發(fā)明實(shí)施例提供的一種電子設(shè)備的方框示意圖。
圖2為本發(fā)明實(shí)施例提供的一種彈幕消息解析方法的流程示意圖。
圖3為圖2中步驟s130的子步驟示意圖。
圖4為圖2中步驟s150的子步驟示意圖。
圖5為本發(fā)明實(shí)施例提供的一種彈幕消息解析裝置的模塊框圖。
圖6為本發(fā)明實(shí)施例提供的一種處理模塊的模塊框圖。
圖7為本發(fā)明實(shí)施例提供的一種解析模塊的模塊框圖。
圖標(biāo):10-電子設(shè)備;100-彈幕消息解析裝置;110-判斷模塊;130-處理模塊;131-判斷子模塊;133-構(gòu)造子模塊;135-定義子模塊;150-解析模塊;151-索引子模塊;153-解析子模塊;200-存儲器;300-處理器。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計。
因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號和字母在下面的附圖中表示類似項,因此,一旦某一項在一個附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
在本發(fā)明的描述中,需要說明的是,術(shù)語“第一”、“第二”、“第三”、“第四”和“第五”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
如圖1所示,是本發(fā)明較佳實(shí)施例提供的一種電子設(shè)備10的方框示意圖。本發(fā)明實(shí)施例中的電子設(shè)備10可以是,但不限于,服務(wù)器、個人電腦(personalcomputer,pc)、平板電腦、個人數(shù)字助理(personaldigitalassistant,pda)、移動上網(wǎng)設(shè)備(mobileinternetdevice,mid)、智能手機(jī)等。本發(fā)明實(shí)施例中提供的方法及裝置用于在電子設(shè)備10上實(shí)現(xiàn)彈幕消息解析。
其中,所述電子設(shè)備10包括彈幕消息解析裝置100、存儲器200和處理器300。
所述存儲器200、處理器300以及各元件之間直接或間接地電性連接,以實(shí)現(xiàn)數(shù)據(jù)傳輸或交互。例如,這些元件相互之間可通過一條或多條通訊總線或信號線實(shí)現(xiàn)電性連接。所述處理器300用于執(zhí)行所述存儲器200中存儲的可執(zhí)行模塊,例如所述彈幕消息解析裝置100中所包括的軟件功能模塊及計算機(jī)程序。
其中,所述存儲器200可以是,但不限于,隨機(jī)存取存儲器(randomaccessmemory,ram),只讀存儲器(readonlymemory,rom),可編程只讀存儲器(programmableread-onlymemory,prom),可擦除只讀存儲器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲器200用于存儲程序,所述處理器300在接收到執(zhí)行指令后,執(zhí)行所述程序,例如本發(fā)明中的彈幕消息解析方法。
所述處理器300可以是一種集成電路芯片,具有信號處理能力。所述處理器300可以是通用處理器,包括中央處理器(centralprocessingunit,cpu)、網(wǎng)絡(luò)處理器(networkprocessor,np)等;還可以是數(shù)字信號處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫?shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。
應(yīng)當(dāng)理解,圖1所示的結(jié)構(gòu)僅為示意,所述電子設(shè)備10可以包括比圖1所示更多或者更少的組件,或者具有與圖1所示不同的配置。圖1中所示的各組件可以采用硬件、軟件或其組合實(shí)現(xiàn)。
如圖2所示,是本發(fā)明較佳實(shí)施例提供的一種彈幕消息解析方法。所述彈幕消息解析方法應(yīng)用于圖1所示的電子設(shè)備10。下面將對圖2所示的方法步驟和具體流程進(jìn)行詳細(xì)闡述。
所述方法包括步驟s110、s130和s150三個步驟。
步驟s110:判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件。
所述長度預(yù)設(shè)條件可以是所述彈幕消息字符串的長度大于零,也可以是所述彈幕消息字符串的長度大于一個定值。為避免解析的消息字符串為空,進(jìn)而造成崩潰的情況??蛇x的,在本實(shí)施例中,所述判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件為:判斷所述彈幕消息字符串的長度是否大于零。
步驟s130:在所述彈幕消息字符串滿足長度預(yù)設(shè)條件時,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串。
通過上述設(shè)置使得構(gòu)造字符串的格式相同,以便于進(jìn)行解析。其中所述第一預(yù)設(shè)字符可以是但不限于符號、字母或數(shù)字,只要能使所述構(gòu)造字符串的格式相同,并根據(jù)實(shí)際需求進(jìn)行設(shè)置即可。例如,在本實(shí)施例中,所述第一預(yù)設(shè)字符為“/”。
請結(jié)合圖3,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串的步驟可以包括:s131、s133和s135三個子步驟。
子步驟s131:判斷所述彈幕消息字符串的末尾字符是否為第一預(yù)設(shè)字符。
在所述彈幕消息字符串的末尾字符不為第一預(yù)設(shè)字符時,執(zhí)行子步驟s133,在所述彈幕消息字符串的末尾字符為第一預(yù)設(shè)字符時,執(zhí)行子步驟s135。
子步驟s133:根據(jù)預(yù)設(shè)拼接函數(shù)向所述彈幕消息字符串的末尾字符后面拼接所述第一預(yù)設(shè)字符得到構(gòu)造字符串。
子步驟s135:將所述彈幕消息字符串定義為構(gòu)造字符串。
通過上述步驟,使得所述彈幕消息字符串是以第一預(yù)設(shè)字符為結(jié)尾,從而使所述彈幕消息字符串的格式統(tǒng)一,以便于進(jìn)行解析處理。
步驟s150:在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。
在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符的方式可以是按照順序循環(huán)查找所述第一預(yù)設(shè)字符,也可以是隨機(jī)查找所述第一預(yù)設(shè)字符,只要能查找到所述構(gòu)造字符串中的所有第一預(yù)設(shè)字符即可,在此不做具體限定。
針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典時,所述字典中包括用于存放臨時字符串的字符串存儲空間和用于存放臨時字符串對應(yīng)信息的關(guān)鍵值存儲空間。
所述臨時字符串可以是所述構(gòu)造字符串中的第一個字符到第一個第一預(yù)設(shè)字符的字符串,和/或第一預(yù)設(shè)字符之后的字符到與該第一預(yù)設(shè)字符相鄰的下一個第一預(yù)設(shè)字符構(gòu)成的字符串。所述臨時字符串也可以是由第一預(yù)設(shè)字符和到與該第一預(yù)設(shè)字符相鄰的下一第一預(yù)設(shè)字符之間的字符串構(gòu)成的。每個臨時字符串對應(yīng)一個字典,每個臨時字符串的結(jié)尾都是第一字符且不同字典中關(guān)鍵值存儲空間中存儲的臨時字符串對應(yīng)信息不同。
所述字典存儲于一預(yù)設(shè)數(shù)組中,在本實(shí)施例中,所述構(gòu)造字符串中包括至少一個第一預(yù)設(shè)字符,則該構(gòu)造字符對應(yīng)至少一個字典。不同字典存放于所述預(yù)設(shè)數(shù)組中的位置不同。通過上述設(shè)置實(shí)現(xiàn)了對彈幕消息字符串進(jìn)行解析。
請結(jié)合圖3,在本實(shí)施例中所述步驟s150包括s151和s153兩個子步驟。
子步驟s151:根據(jù)預(yù)設(shè)循環(huán)函數(shù)對所述構(gòu)造字符串進(jìn)行循環(huán)索引,所述循環(huán)函數(shù)進(jìn)行循環(huán)索引的次數(shù)與所述構(gòu)造字符串的長度相對應(yīng)。
子步驟s153:當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第一預(yù)設(shè)字符時,創(chuàng)建一個字典,將所述第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,并在所述臨時字符串之前拼接第二預(yù)設(shè)字符。
所述第二預(yù)設(shè)字符可以是但不限于字母、數(shù)字或符號,根據(jù)實(shí)際需求進(jìn)行設(shè)置即可。所述第二預(yù)設(shè)字符與所述第一預(yù)設(shè)字符可以是相同的,也可以是不同的。例如,在本實(shí)施例中,所述第二預(yù)設(shè)字符為“@”。通過在所述臨時字符串之前拼接第二預(yù)設(shè)字符,使得各所述臨時字符串的第一個字符相同,進(jìn)而使各臨時字符串的格式相同,以方便提取解析后的彈幕消息字符串。
可選的,所述步驟s150還包括:當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第三預(yù)設(shè)字符時,在該第三預(yù)設(shè)字符后面拼接第二預(yù)設(shè)字符,并創(chuàng)建一個字典,將該第二預(yù)設(shè)字符對應(yīng)的字符串存儲于該字典,并將該字典存儲于所述預(yù)設(shè)數(shù)組。
所述第三預(yù)設(shè)字符可以是但不限于字母、數(shù)字或符號,根據(jù)實(shí)際需求進(jìn)行設(shè)置即可。所述第三預(yù)設(shè)字符與所述第一預(yù)設(shè)字符和第二預(yù)設(shè)字符都不同。例如,在本實(shí)施例中,所述第三預(yù)設(shè)字符為“a”。
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第四預(yù)設(shè)字符時,在該第四預(yù)設(shè)字符后面拼接第一預(yù)設(shè)字符,并創(chuàng)建一個字典,將該第一預(yù)設(shè)字符對應(yīng)的字符串存儲于該字典,并將該字典存儲于所述預(yù)設(shè)數(shù)組。
所述第四預(yù)設(shè)字符可以是但不限于字母、數(shù)字或符號,根據(jù)實(shí)際需求進(jìn)行設(shè)置即可。所述第四預(yù)設(shè)字符與所述第一預(yù)設(shè)字符、第二預(yù)設(shè)字符和三預(yù)設(shè)字符不同。例如,在本實(shí)施例中,所述第四預(yù)設(shè)字符為“s”。
當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第二預(yù)設(shè)字符,且所述第二預(yù)設(shè)字符相鄰的下一字符為第五預(yù)設(shè)字符時,清空所述臨時字符串。
所述第五預(yù)設(shè)字符可以是但不限于字母、數(shù)字或符號,根據(jù)實(shí)際需求進(jìn)行設(shè)置即可。例如,在本實(shí)施例中,所述第五預(yù)設(shè)字符為“=”。
通過上述設(shè)置使得所述彈幕消息字符串解析成為多個的字典,并存儲于數(shù)組中,方便后續(xù)的調(diào)用和判斷,進(jìn)而有效避免在對彈幕消息進(jìn)處理時存在多余的判斷和處理,進(jìn)而有效避免彈幕消息顯示實(shí)時性差的問題。
可選的,在判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件的步驟之前,所述彈幕消息解析方法還包括:在檢測到彈幕消息時,對所述彈幕消息進(jìn)行初始化得到彈幕消息字符串,以及對所述彈幕消息字符串進(jìn)行復(fù)制并保存。
請結(jié)合圖5,本發(fā)明實(shí)施例提供一種彈幕消息解析裝置100,所述彈幕消息解析裝置100包括:判斷模塊110、處理模塊130和解析模塊150。
所述判斷模塊110用于判斷彈幕消息字符串是否滿足長度預(yù)設(shè)條件。在本實(shí)施例中,關(guān)于所述判斷模塊110的描述具體可參考對圖2中所示的步驟s110的詳細(xì)描述。也即,所述步驟s110可以由所述判斷模塊110執(zhí)行。
所述處理模塊130用于在所述彈幕消息字符串滿足長度預(yù)設(shè)條件時,根據(jù)所述彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串。在本實(shí)施例中,關(guān)于所述處理模塊130的描述具體可參考對圖2中所示的步驟s130的詳細(xì)描述。也即,所述步驟s130可以由所述處理模塊130執(zhí)行。
請結(jié)合圖6,可選的,在本實(shí)施的例中,所述處理模塊130包括:判斷子模塊131、構(gòu)造子模塊133和定義子模塊135。
所述判斷子模塊131用于判斷所述彈幕消息字符串的末尾字符是否為第一預(yù)設(shè)字符。在本實(shí)施例中,關(guān)于所述判斷子模塊131的描述具體可參考對圖3中所示的子步驟s131的詳細(xì)描述。也即,所述子步驟s131可以由所述判斷子模塊131執(zhí)行。
所述構(gòu)造子模塊133用于在所述彈幕消息字符串的末尾字符不為第一預(yù)設(shè)字符時,根據(jù)預(yù)設(shè)拼接函數(shù)向所述彈幕消息字符串的末尾字符后面拼接所述第一預(yù)設(shè)字符得到構(gòu)造字符串。在本實(shí)施例中,關(guān)于所述構(gòu)造子模塊133的描述具體可參考對圖3中所示的子步驟s133的詳細(xì)描述。也即,所述子步驟s133可以由所述構(gòu)造子模塊133執(zhí)行。
所述定義子模塊135用于在所述彈幕消息字符串的末尾字符為第一預(yù)設(shè)字符時,將所述彈幕消息字符串定義為構(gòu)造字符串。在本實(shí)施例中,關(guān)于所述定義子模塊135的描述具體可參考對圖3中所示的子步驟s135的詳細(xì)描述。也即,所述子步驟s135可以由所述定義子模塊135執(zhí)行。
所述解析模塊150用于在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,并將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。在本實(shí)施例中,關(guān)于所述解析模塊150的描述具體可參考對圖2中所示的步驟s150的詳細(xì)描述。也即,所述步驟s150可以由所述解析模塊150執(zhí)行。
請結(jié)合圖7,可選的,在本實(shí)施的例中,所述解析模塊150包括:索引子模塊151和解析子模塊153。
所述索引子模塊151用于根據(jù)預(yù)設(shè)循環(huán)函數(shù)對所述構(gòu)造字符串進(jìn)行循環(huán)索引,所述循環(huán)函數(shù)進(jìn)行循環(huán)索引的次數(shù)與所述構(gòu)造字符串的長度相對應(yīng)。在本實(shí)施例中,關(guān)于所述索引子模塊151的描述具體可參考對圖4中所示的子步驟s151的詳細(xì)描述。也即,所述子步驟s151可以由所述索引子模塊151執(zhí)行。
所述解析子模塊153用于當(dāng)循環(huán)索引的次數(shù)對應(yīng)的字符串長度處的字符為第一預(yù)設(shè)字符時,創(chuàng)建一個字典,將所述第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,并在所述臨時字符串之前拼接第二預(yù)設(shè)字符。在本實(shí)施例中,關(guān)于所述解析子模塊153的描述具體可參考對圖4中所示的子步驟s153的詳細(xì)描述。也即,所述子步驟s153可以由所述解析子模塊153執(zhí)行。
綜上所述,本發(fā)明提供的一種彈幕消息解析方法、裝置及電子設(shè)備,根據(jù)滿足長度預(yù)設(shè)條件的彈幕消息字符串得到包括至少一個第一預(yù)設(shè)字符的構(gòu)造字符串,并在所述構(gòu)造字符串中查找所述第一預(yù)設(shè)字符,針對查找到的每個所述第一預(yù)設(shè)字符分別創(chuàng)建一個字典,將該第一預(yù)設(shè)字符對應(yīng)的臨時字符串存儲于所述字典,所述字典存儲于一預(yù)設(shè)數(shù)組。通過上述設(shè)置能夠有效避免對彈幕消息字符串進(jìn)行冗余判斷和處理,進(jìn)而有效避免彈幕消息顯示時實(shí)時性差的問題。通過設(shè)置第二預(yù)設(shè)字符、第三預(yù)設(shè)字符、第四預(yù)設(shè)字符和第五預(yù)設(shè)字符,可以進(jìn)一步避免對彈幕消息字符串進(jìn)行冗余判斷和處理,進(jìn)而有效避免彈幕消息顯示實(shí)時性差的問題。
在本發(fā)明實(shí)施例所提供的幾個實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,也可以通過其它的方式實(shí)現(xiàn)。以上所描述的系統(tǒng)和方法實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實(shí)施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實(shí)現(xiàn)。
另外,在本發(fā)明各個實(shí)施例中的各功能模塊可以集成在一起形成一個獨(dú)立的部分,也可以是各個模塊單獨(dú)存在,也可以兩個或兩個以上模塊集成形成一個獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時,可以存儲在一個計算機(jī)可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),電子設(shè)備,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。