【发布时间】:2014-04-24 08:25:22
【问题描述】:
我需要知道如何在我的 JavaCard 中存储字符串数据,有什么帮助吗? P.S : JavaCard 不支持 String 类型。
【问题讨论】:
-
为什么所有的反对票?也不向新用户解释。欢迎,Achraf!
我需要知道如何在我的 JavaCard 中存储字符串数据,有什么帮助吗? P.S : JavaCard 不支持 String 类型。
【问题讨论】:
你可以将它表示为字节数组:
byte[] str = {'s', 't', 'r', 'i', 'n', 'g'};
这将使用每个 16 位代码点的低 8 位。这将在 ASCII 字符范围内正常工作,但不会为高于 0x7F(十进制为 127)的任何代码点生成任何特定编码。
【讨论】:
Java Card 仅三种小的原始数据类型(布尔、字节、短)
它具有对 integer (int) 原始数据类型的可选支持。
字符串可以表示为字符或字节数组。
但是不支持字符(据我所知)。
因此您可以使用字节数组来表示它:
byte str[]; //creating array of byte
str = {'s' , 't' , 'a' , 'c' , 'k'}; // initializing array
我的回答与上面相同,但没有更多解释。
希望这会有所帮助。
【讨论】:
Javacard 是Java 的一个很小的子集,它不支持Long、double、float 和所有包装类Char、String 多维数组动态类加载。仅支持 Boolean、byte、short Int。
【讨论】:
boolean 和int。并且整数支持是可选的,并且(AFAIK)非常罕见:)
从 JavaCard API v 3.0.4 开始,支持StringUtil class。但是,目前(2018 年)免费提供的卡大多不支持它(请参阅JCAlgTest page 列出对 javacardx.framework.string v1.0 的支持)
【讨论】: