【问题标题】:Split an arraylist of strings to its original strings elements将字符串数组列表拆分为其原始字符串元素
【发布时间】:2020-04-15 19:42:51
【问题描述】:

所以我有这个 Arraylist:

ArrayList<String> al = new ArrayList<String>();
for (int i = 0; i < arr1.length(); i++) {
JSONObject objectt = arr1.getJSONObject(i);
JSONObject triple = objectt.getJSONObject("triple");
String subject=triple.getString("s");
String predicate=triple.getString("p");
String value=triple.getString("o");
al.add(subject);
al.add(predicate);
al.add(value);
}

我想知道是否有办法将数组列表“al”拆分为 for 循环之外的原始字符串(主题、谓词、值)?

【问题讨论】:

  • 它们将出现在列表的第三个元素中,但为什么不将它们放入包含主题、谓词和值字段的对象中,并拥有这些对象的列表?
  • @DavidConrad 怎么样?

标签: java string arraylist


【解决方案1】:

不要单独存储单个字符串,将它们存储在具有主题、谓词和值字段的对象中,如下所示:

public class Triple {
    private String subject;
    private String predicate;
    private String value;

    public Triple(String subject, String predicate, String value) {
        this.subject = subject;
        this.predicate = predicate;
        this.value = value;
    }

    /* getters, toString, equals and hashCode if necessary... */
}

// . . .
    List<Triple> al = new ArrayList<>();
    for (int i = 0; i < arr1.length(); i++) {
        JSONObject triple = arr1.getJSONObject(i).getJSONObject("triple");
        String subject = triple.getString("s");
        String predicate = triple.getString("p");
        String value = triple.getString("o");
        al.add(new Triple(subject, predicate, value));
    }

然后,如果您想使用这些值,请调用 getter:

// . . .
    for (Triple t : al) {
        String subject = t.getSubject();
        String predicate = t.getPredicate();
        String value = t.getValue();
        // do something with them
    }

【讨论】:

  • 以及如何将我在 for 循环中获得的主题、谓词、值的值分配给新变量?
  • @amine4392 通过调用 Triple 的 getter。
猜你喜欢
  • 1970-01-01
  • 2015-01-23
  • 2019-04-16
  • 1970-01-01
  • 2021-07-19
  • 2011-05-31
  • 2012-02-22
相关资源
最近更新 更多