【问题标题】:Get Items Feeds4J Java Array获取项目 Feeds4J Java 数组
【发布时间】:2010-12-31 16:15:53
【问题描述】:

我来自 php,所以我想学习 java。 在 for 循环中的 php 中,如果我想创建一个数组,我只是这样做

$items = $this->getItems();
for($i=0;$i<count($items);$i++)
{
 $myarrayitems[$i] = $items[$i];
}

return $myarrayitems;

但是在java中我得到了arrayoutofexponsion之类的。

这是我正在尝试的代码

public String[] getItems(String url) throws Exception
{
URL rss = new URL(url);
Feed feed = FeedParser.parse(rss);
int items = feed.getItemCount();
int a = 0;

for (int i = 0; i < items; i++) 
{
FeedItem item = feed.getItem(i);
String title[i] =  item.getTitle();
}

return title;

}

如何将标题作为数组返回并制作一个 var_dump?

【问题讨论】:

    标签: java arrays parsing feed


    【解决方案1】:

    您需要先创建具有正确数量元素的数组。像这样的:

    public String[] getItems(String url) throws Exception
    {
        URL rss = new URL(url);
        Feed feed = FeedParser.parse(rss);
        int items = feed.getItemCount();
        // We know how many elements we need, so create the array
        String[] titles = new String[items];
    
        for (int i = 0; i < items; i++) 
        {
            titles[i] = feed.getItem(i).getTitle();
        }
    
        return titles;    
    }
    

    然而,一个可能更好的选择是返回 List&lt;String&gt; 而不是字符串数组。我不知道FeedParser API,但如果您可以迭代这些项目,您可以执行以下操作:

    public List<String> getItems(String url) throws Exception
    {
        URL rss = new URL(url);
        Feed feed = FeedParser.parse(rss);
        List<String> titles = new ArrayList<String>();
        for (Item item : feed)
        {
            titles.add(item.getTitle());
        }    
        return titles;    
    }
    

    即使您不知道要从多少项目开始,这也将起作用。当 Java 最终获得简洁的闭包时,您可能会更简单地表达这一点,就像在 C# 中使用 LINQ 一样:)

    【讨论】:

      【解决方案2】:

      你必须在使用前将title定义为一个数组:

      String title = new String[ARRAY_DIMENSION];
      

      如果你不知道ARRAY_DIMENSION,你可以使用这个:

      List<String> title = new ArrayList<String>();
      

      或者这个,如果你不介意 ArrayList 中的字符串顺序:

      Collection<String> title = new ArrayList<String>();
      

      【讨论】:

      • 但我不知道 array_dimension 有多大,所以我不能插入 10 或 20
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2015-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-01
      相关资源
      最近更新 更多