當(dāng)前位置:首頁(yè) > 測(cè)試測(cè)量 > 測(cè)試測(cè)量
[導(dǎo)讀]最近在做的項(xiàng)目需要用到分割字符串中的有效數(shù)據(jù),而有效數(shù)據(jù)的分割一般是兩個(gè)標(biāo)識(shí)符中間的。一直未能找到合適的字符串函數(shù)來(lái)解析出來(lái)有效數(shù)據(jù),而昨天恰恰看到了這樣一個(gè)字符串函數(shù)——在字符串中搜索標(biāo)記

最近在做的項(xiàng)目需要用到分割字符串中的有效數(shù)據(jù),而有效數(shù)據(jù)的分割一般是兩個(gè)標(biāo)識(shí)符中間的。一直未能找到合適的字符串函數(shù)來(lái)解析出來(lái)有效數(shù)據(jù),而昨天恰恰看到了這樣一個(gè)字符串函數(shù)——在字符串中搜索標(biāo)記。

這個(gè)函數(shù)的描述是這樣的:



其中標(biāo)記是連接至函數(shù)的分隔符或運(yùn)算符能夠識(shí)別的文本片段,在這里就是指我上面所謂的有效數(shù)據(jù)段。而分隔符是上面所說(shuō)的標(biāo)識(shí)符。

其他引腳的說(shuō)明如下:

允許空標(biāo)記?確定函數(shù)在遇到多個(gè)相鄰分隔符時(shí)是否能識(shí)別標(biāo)記。如允許空標(biāo)記?的值為FALSE(默認(rèn)值),多個(gè)相鄰的分隔符可以分隔輸入字符串中的兩個(gè)標(biāo)記。如允許空標(biāo)記?的值為T(mén)RUE,在每個(gè)相鄰分隔符對(duì)之間都將返回空的標(biāo)記字符串。輸入字符串是要搜索標(biāo)記的字符串。偏移量是輸入字符串中開(kāi)始掃描的點(diǎn)。默認(rèn)值為0,即字符串的起始位置。運(yùn)算符是字符串?dāng)?shù)組,如輸入字符串包含字符串?dāng)?shù)組,即使它們沒(méi)有被分隔符分隔,函數(shù)仍將其視為標(biāo)記。如輸入字符串的一部分匹配多個(gè)運(yùn)算符,函數(shù)將把最長(zhǎng)的匹配作為標(biāo)記。例如,如>、=和>=被定義為運(yùn)算符,輸入字符串4>=0將生成>=作為下一個(gè)標(biāo)記字符串,偏移量為1。

運(yùn)算符中的字符串可能包含下列特殊格式代碼,用于將整個(gè)數(shù)字作為單個(gè)標(biāo)記進(jìn)行掃描。%d匹配十進(jìn)制整數(shù)%o匹配八進(jìn)制整數(shù)%x匹配十六進(jìn)制整數(shù)%b匹配二進(jìn)制整數(shù)%e,%f,%g匹配浮點(diǎn)數(shù)或科學(xué)計(jì)數(shù)法實(shí)數(shù)%%匹配單個(gè)%字符注:如字符串+或-被定義為運(yùn)算符,函數(shù)將無(wú)法識(shí)別前導(dǎo)(一元)+或-符號(hào)。函數(shù)始終將其作為單個(gè)標(biāo)記返回。這是“最長(zhǎng)匹配”規(guī)則的例外情況。

分隔符該字符串?dāng)?shù)組可作為標(biāo)記分隔符。分隔符中的字符串不會(huì)作為標(biāo)記返回,而是用于分隔相鄰的標(biāo)記。默認(rèn)的分隔符為空格字符:空格、制表符、換行符和回車。

使用緩存中的分隔/運(yùn)算數(shù)據(jù)?是可選的高級(jí)輸入端。如沒(méi)有連線,標(biāo)記字符串仍為正常狀態(tài)。通過(guò)使用緩存中的分隔/運(yùn)算數(shù)據(jù)?可以顯著改進(jìn)字符串解析的性能。在標(biāo)記字符串第一次執(zhí)行時(shí),應(yīng)將使用緩存中的分隔/運(yùn)算數(shù)據(jù)?設(shè)置為FALSE,在接下來(lái)的執(zhí)行中,只要運(yùn)算符和分隔符沒(méi)有改變,就將其設(shè)置為T(mén)RUE。使用移位寄存器并將常量FALSE作為輸入,TRUE作為輸出,可保證運(yùn)算符和分隔符在循環(huán)執(zhí)行中沒(méi)有改變的情況下正確運(yùn)行。如使用緩存中的分隔/運(yùn)算數(shù)據(jù)?的值為T(mén)RUE,并且運(yùn)算符或分隔符在上次執(zhí)行時(shí)發(fā)生了改變,將產(chǎn)生錯(cuò)誤的結(jié)果。如運(yùn)算符和分隔符沒(méi)有連線或連線至程序框圖常量,則無(wú)需連線使用緩存中的分隔/運(yùn)算數(shù)據(jù)?就可得到優(yōu)化的性能。

字符串輸出返回?zé)o改變的輸入字符串。

標(biāo)記后偏移量確定在輸入字符串中的點(diǎn),這些點(diǎn)緊隨最近找到的標(biāo)記和任意的分隔符。任何對(duì)于輸入字符串的后續(xù)搜索都從該偏移量開(kāi)始。如偏移量小于0或大于輸入字符串中的字符數(shù),或者已經(jīng)到達(dá)字符串的末尾,則標(biāo)記后偏移量為-1。

標(biāo)記字符串是匹配的標(biāo)記。它可以是運(yùn)算符中的字符串或輸入字符串中位于分隔符間的任意文本字符串。

標(biāo)記索引如標(biāo)記字符串匹配運(yùn)算符中的某個(gè)元素,則值為標(biāo)記字符串在運(yùn)算符中的索引。如標(biāo)記字符串是其它字符串,標(biāo)記索引將返回-1。如函數(shù)在到達(dá)輸入字符串末尾后,仍未找到有效的運(yùn)算符,標(biāo)記索引將返回-2。利用這個(gè)函數(shù)我們可以將含有標(biāo)識(shí)符的數(shù)據(jù)分割成多個(gè)有效數(shù)據(jù)段。

據(jù)此,我寫(xiě)了一個(gè)簡(jiǎn)單的小程序。如下:




輸入字符串輸入進(jìn)while循環(huán),通過(guò)本函數(shù),搜索c0分割的字符,就會(huì)將第一個(gè)有效數(shù)據(jù)段分離出來(lái)。然后本函數(shù)的輸出--標(biāo)記后偏移量經(jīng)過(guò)移位寄存器再傳給函數(shù)的輸入--偏移量。就不再考慮已經(jīng)標(biāo)記下來(lái)的有效數(shù)據(jù)段,進(jìn)而搜尋下一個(gè)有效數(shù)據(jù)段。當(dāng)最后的的數(shù)據(jù)段后面已經(jīng)沒(méi)有標(biāo)識(shí)符了,這個(gè)輸出的偏移量值為-1,我通過(guò)這個(gè)條件判定while循環(huán)結(jié)束。 詳細(xì)具體的輸入輸出結(jié)果,不妨寫(xiě)個(gè)順序結(jié)構(gòu),一個(gè)步驟一個(gè)步驟的看。再次不再詳述。 只是其中的一個(gè)輸入——允許空標(biāo)記?true時(shí),如果兩個(gè)標(biāo)識(shí)符中間沒(méi)有(兩個(gè)標(biāo)識(shí)符直接相連的話),也會(huì)顯示出空字符串。如果為false時(shí),則不會(huì)顯示空字符串,而是將兩個(gè)標(biāo)識(shí)符視為一個(gè)標(biāo)識(shí)符進(jìn)行操作。

至于運(yùn)算符輸入項(xiàng),如果設(shè)置了一個(gè)條件的話,就會(huì)在有效數(shù)據(jù)段內(nèi)搜索該運(yùn)算符,把符合條件的通過(guò)標(biāo)記索引輸出出來(lái)。

具體再使用其他更細(xì)化功能的話,不妨再進(jìn)行詳細(xì)實(shí)驗(yàn)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉