Valósítsd meg a String_Type típust és a hozzá tartozó műveleteket a következő módon:
A String_Type típusodat helyezd el egy String_Types nevu csomagban a muveleteivel együtt.
A típus legyen átlátszatlan diszkriminánsos rekord. Keress megoldást a String_Type típus rekordon belüli ábrázolására.
Definiálj egy String_Type-okat tartalmazó tömböt (String_Type_Array), mely a Split függvény visszatérési értékének a típusa.
Segítség: Ha elakadnál egy metódus értelmezésében, a nézzél szét a Java API doc-ban: http://download.oracle.com/javase/6/docs/api/java/lang/String.html
A következő műveleteket kell implementálnod.
function Init(S : String) return String_Type; -- inicializál, olyan, mint egy konstruktor. function Char_At(S : String_Type; i : Positive) return Character; function Compare_To(S1 : String_Type; S2 : String_Type) return Boolean; function "+"(S1 : String_Type; S2 : String_Type) return String_Type; -- konkatenáció! function Contains(S : String_Type; Sub : String_Type) return Boolean; function Contains(S : String_Type; Str : String) return Boolean; function Ends_With(S : String_Type; Ending : String_Type) return Boolean; function Ends_With(S : String_Type; Ending : String) return Boolean; function Index_Of(S : String_Type; C : Character) return Positive; function Index_Of(S : String_Type; C : Character; I : Positive) return Positive; -- I-dik karaktertől nézze! function Index_Of(S : String_Type; Str : String) return Positive; -- substringet keres! function Last_Index_Of(S : String_Type; C : Character) return Positive; function Last_Index_Of(S : String_Type; Str : String) return Positive; function Length(S : String_Type) return Positive; procedure Replace(S : in out String_Type; Cold : Character; Cnew : Character); function Split(S : String_Type; Delim : Character) return String_Type_Array; function Starts_With(S : String_Type; Ending : String_Type) return Boolean; function Starts_With(S : String_Type; Ending : String) return Boolean; function Substring(S : String_Type; Starts : Positive) return String_Type; function SubString(S : String_Type; Starts : Positive; Ends : Positive) return String_Type; function To_Sting(S : String_Type) return String;