資料結構


檔案簡要說明

在廣論App程式中存在許多二維陣列、三維陣列來代表資料,為讓資料更具有意義,末學將這些資料以資料結構類別來封裝。LamrimReader.Core中檔名以Util結尾的檔案是程式檔案,其他為資料結構:

處理程式:

BookMapUtil.java    ----    處理論文/字幕對應表的程式。
SubtitleUtil.java    ----    處理字幕程式。
TheoryUtil.java    ----    處理論文的程式。


資料結構:

LinearIndex.java    ----    線性座標,計算機字串處理時使用。
PLIndex.java    ----   頁、行、字座標,人類習慣定位用。
Subtitle.java    ----    代表字幕的資料結構。
TheoryParseListener.java    ----   TheoryUtil.java 的附屬 Listener,用在解讀廣論原文時使用。
Dot.java    ----   代表廣論原文中的標點符號。

定位系統說明

人類的閱讀習慣常以頁數、行數、第幾個字等座標指引論文位置(如全球廣論),而計算機在處理字串時則是以線性的 index 在指引位置(如String.chatAt(Index)),代表頁、行、字的資料結構為PLIndex.java,代表線性座標的資料結構為LinearIndex.java,在處理這類資料時常常需要轉換座標,轉換程式為 TheoryUtil.linearToPLIndex() 與 TheoryUtil.pliToLinearIndex()。


附註:

為降低程式複雜度,未將BookMap納入Core程式中,請參閱論文/字幕對應表

Comments