App Inventor學習記錄212-抓出全文中,每一個重複字串的初始位置

這個是舊的 YOUTUBE頻道還沒有被刪掉之前,有人看了這一篇用網路元件,取得網頁上的資料之後問的問題。總算……我有解了。

記錄一下:
App Inventor學習記錄212-抓出全文中,每一個重複字串的初始位置


這次範例的完成品如下

在文字輸入盒中,輸入我們要找的文字或是字串之後,點擊出現次數按鈕,就會在下方的標籤中,顯示我們要搜尋的字串在全部的內容中出現幾次。
點擊列出所有位置按鈕之後,就會把每一個重複字串的初始位置給列成一個清單


畫面編排的部份如上。同樣是按鈕、標籤和文字輸入盒的組合而己。



全部的程式方塊如上。


變數_全文,同樣是在文字方塊中,放入陋室銘的文章。
接下來的兩個變數的用途,請參考名稱。



when screen 1.initialize當螢幕初始化的時候,把標籤 1的文字設定成變數_全文的內容。


建立出現次數和出現位置的程式。
其中,出現次數的部份,我們已經在上一篇抓出文章中指定字出現的次數,同時以紅色顯示介紹過了,這裡就不在重覆。由於這裡是用 split的文字方塊,把特定字串當成分割符號,輸出值是一個清單。字串的出現長度則是清單長度減 1

有了出現的次數之後,我們就用 for each number from的方塊來計算累加的長度。
這個地方就得舉例來說明一下。
比方我,我們取陋室銘的山這個字來當分割符號,所以經過 split的方塊之後,我們得到的一個清單是像這樣子的。我把山這個字替換成,,下面會把這個符號放大而且以紅色顯示。
[環滁皆,也。其西南諸峯,林壑尤美,望之蔚然而深秀者,琅琊也。,行六七裏,漸聞水聲潺潺而瀉出於兩峯之間者,釀泉也。峯迴路轉,有亭翼然臨於泉上者,醉翁亭也。作亭者誰?,之僧智仙也。名之者誰?太守自謂也。太守與客來飲於此,飲少輒醉,而年又最高,故自號曰醉翁也。醉翁之意不在酒,在乎,水之間也。,水之樂,得之心而寓之酒也。 若夫日出而林霏開,雲歸而巖穴暝,晦明變化者,,間之朝暮也。野芳發而幽香,佳木秀而繁陰,風霜高潔,水落而石出者,,間之四時也。朝而往,暮而歸,四時之景不同,而樂亦無窮也。 至於負者歌於途,行者休於樹,前者呼,後者應,傴僂提攜,往來而不絕者,滁人遊也。臨溪而漁,溪深而魚肥。釀泉爲酒,泉香而酒洌;,餚野蔌,雜然而前陳者,太守宴也。宴酣之樂,非絲非竹,射者中,弈者勝,觥籌交錯,起坐而喧譁者,衆賓歡也。蒼顏白髮,頹然乎其間者,太守醉也。 已而夕陽在,,人影散亂,太守歸而賓客從也。樹林陰翳,鳴聲上下,遊人去而禽鳥樂也。然而禽鳥知,林之樂,而不知人之樂;人知從太守遊而樂,而不知太守之樂其樂也。醉能同其樂,醒能述以文者,太守也。太守謂誰?廬陵歐陽修也。

所以,我們得到的清單的長度是 11,山這個字出現的次數是 10次。

接著,我們就可以用累加的方式,求清單中每一項次的文字長度,加上字串長度,求出每一個山出現的初始位置。程式如上。說明起來太繞口,大家參考一下就行。



按鈕按下後,顯示出現的次數。


按鈕按下後,顯示每一個字出的初始位置。

好的,全部的程式方塊都簡單說明過了,建議大家試著做一次,就會用的越來越熟。
但如果不想要重新拉程式方塊,或要需要範例 aia檔的話,請前往第 2頁哦!

發表迴響