使用 NetCDF 的 Java API,我有一个带有 CHAR 类型数组的 HDF5 文件,根据文档,它类似于仅包含 ASCII 字符的字符串:“char 类型包含未解释的字符,每个字节一个字符。通常这些包含 7 -位 ASCII 字符。” 在 HDFView 中,数组中的其中一个值的示例是“13”。
我知道对于整数数组,我可以将它们全部作为 Java 数组获取,如下所示:
int[] data = (int[]) netCDFArray.get1DJavaArray(int.class);
但是如何取回这个 CHAR 类型的数组呢?不幸的是,我引用的文档没有帮助。
以下不可能是正确的,因为有些项目不仅仅是单个字符:
char[] data = (char[]) netCDFArray.get1DJavaArray(char.class);
以下尝试都抛出一个ForbiddenConversionException
:
char[] data = (char[]) netCDFArray.get1DJavaArray(char.class);
char[][] data = (char[][]) netCDFArray.get1DJavaArray(char[].class);
String[] data = (String[]) netCDFArray.get1DJavaArray(String.class);
如果我使用netCDFArray.toString()
我会看到我的字符串数组,因为ArrayChar
使用StringIterator
. 我想我也可以使用这样的迭代器并对每个字符串做一些事情。但我不需要一个 int 迭代器来检索整数。如何一次有效地检索 CHAR 类型的所有字符串,类似于我如何检索整数(见上文)?我会满足于检索 Java Strings[]
、CharSequence[]
或char[][]
.