连接Java对象数组中的字段

时间:2012-01-19 19:17:54

标签: java arrays string object field

我是Java的新手。我有一个具有字符串字段的对象数组。我可以通过循环将所有字符串连接成一个字符串数组,但它非常不优雅。

int numObj = obj.length;
String[] strArray = new String[numObj];
for (int i = 0; i < numObj; i++) {
    strArray[i] = obj[i].strField;
}

有没有办法在一个命令中将所有对象中的单个字段连接成字符串数组? e.g:

String[] strArray = (String[]){obj[].strField};

这不起作用,因为obj[]是一个数组,所以它没有任何字段,但使用{obj.strField}也不起作用,因为没有名为{{1}的对象}。顺便说一下,我真的不需要重新制作字段或obj,因为它已经是一个字符串。

我看了很多很多其他帖子(但也许还不够?)与此相关,但我仍然无法弄清楚这一点。有些引用将对象数组转换为字符串数组,但我不认为这些帖子意味着转换对象中的特定字段,而是将对象本身转换为uncast类型。

在MATLAB中,这将是微不足道的:.toString()将立即从strCellArray = {obj.strField};中的所有strField创建一个字符串的单元格数组。

感谢您的帮助。

1 个答案:

答案 0 :(得分:7)

你所做的是唯一的方法。但是,您不必为数组的长度创建变量。使用公共字段的次数是99.99%,这是一个非常糟糕的主意:

String[] strings = new String[objects.length];
for (int i = 0; i < objects.length; i++) {
    strings[i] = objects[i].getStringField();
}