java資料結構之串的定義
阿新 • • 發佈:2018-11-27
串的介面定義
package Interface; import impl.ArrayString; /** * 串 是由零個或者多個字元組成的有限序列 * 串中字元的數目n稱為串的長度 零個字元的串稱為空串 它的長度為零 * 串中任意個連續字元字元組成的子序列稱為該串的子串 包含子串的串相應的稱為主串 * 通常稱字元在序列中的序號為該字元在串中的位置 子串的位置則是以該子串的第一個字元在主串中的位置來表示 (ps:第一個字元的位置是1 不是零) * 兩個串相等的前提是 兩個串的長度相等 且對應位置的各個字元也都相等 * 由一個或多個空格組成的串 也稱為空格串,不等於空串,長度為空格的數目 * * 串的儲存結構與線性表相似,但是基本操作不同,串的基本操作是以串的整體作為操作物件,線性表是以單個元素作為操作物件 * 例如 在串中查詢某個子串,求取某個子串,在串的某個位置插入一個子串 以及刪除一個子串等 * * 以下操作中: * 串賦值,串比較,求串長,串連線,求子串 這五種操作是最小操作,其他的串操作可以用這五種組合成 * * */ public interface IString { /** * 生成一個其值等於chars的串T * @param chars * @return */ IString StrAssign(char[] chars); /** * 將串的內容複製給target * @param * @return */ IString StrCopy(IString target); /** * 若是串為空 則返回true 否則返回false * @return */ Boolean StrEmpty(); /** * 如果本字串比target大,則返回大於0 若是相等 返回0 若是不等 則返回-1 * @param target * @return */ int StrCompare(IString target); /** * 返回串的長度 即元素個數 * @return */ int StrLength(); /** * 將串清空為空串 */ Boolean ClearString(); /** * 連線為新串,並返回新串 */ IString Concat(IString s2); /** * 返回串的第post個字元起,長度為len的子串 */ IString SubString(int pos,int len); /** * 若主串中存在和串T值相同的子串,則返回它在主串中第pos個位置之後的第一次出現的位置,否則返回0 * * @param T 子串 * @param pos 指定位置 * @return */ int index(IString T,int pos); /** * 用V替換所有在主串中出現的所有與T相等的不重疊的子串 * @param T * @return */ IString Replace(IString T,IString V); /** * 在主串的第pos個字元之前插入串T * @param T * @param pos * @return */ IString StrInsert(IString T,int pos); /** * 從主串中刪除第pos個字元起長度為len的子串 * @param pos * @param len * @return */ IString StrDelete(int pos,int len); /** * 銷燬 */ IString DestroyString(); /** * 列印自己 */ void print(); /** * 轉為陣列 */ char[] toArray(); }