Ada:如何表示java字符串?

Ada:如何表示java字符串?,java,string,ada,Java,String,Ada,我在Ada的一个家庭项目中需要一些提示/帮助。所以我需要做一个J_字符串包,但我真的不知道如何表示我的J_字符串类型。规范要求我:“将J_字符串类型表示为不透明的判别记录。对于字符串的内部表示,请使用标准字符串类型。判别式确定J_字符串类型中包含的字符串的大小。” 到目前为止,我的广告: package J_String_Pkg is type J_String(Size: Positive) is limited private; --methods etc priv

我在Ada的一个家庭项目中需要一些提示/帮助。所以我需要做一个J_字符串包,但我真的不知道如何表示我的J_字符串类型。规范要求我:“将J_字符串类型表示为不透明的判别记录。对于字符串的内部表示,请使用标准字符串类型。判别式确定J_字符串类型中包含的字符串的大小。” 到目前为止,我的广告:

package J_String_Pkg is
    type J_String(Size: Positive) is limited private;

   --methods etc    

private
    type J_String(Size: Positive) is record
        --i need some help here!! :)
    end record;
end J_String_Pkg;

谢谢你的帮助

你需要这样的东西:

type J_String(Size: Positive) is record
   Contents : String (1 .. Size);
end record;
这与Ada参考手册()中的一个示例密切相关

需要注意的一点是:您的代码没有默认的判别式,这意味着一旦创建,您将无法更改
J_字符串的
大小。手臂上的例子

type Buffer(Size : Buffer_Size := 100)  is
   record
      Pos   : Buffer_Size := 0;
      Value : String(1 .. Size);
   end record;
允许您更改实例的大小,但代价是预先分配
缓冲区大小
字符(无论如何,使用GNAT)。您确实不想用
正片
来做这件事;大多数计算机没有2GB的RAM可供备用