Frage

Im von php, so dass ich Java Lear will. In PHP in einem for-Schleife will, wenn ich ein Array erstellen ich nur tun

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

return $myarrayitems;

Aber in Java bekam ich arrayoutofexponsion oder so.

Hier ist der Code im Versuch,

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;

}

Wie ich Titel als Array Ein make eine var_dump davon zurückgeben kann?

War es hilfreich?

Lösung

Sie müssen definieren title als Array vor der Verwendung mit:

String title = new String[ARRAY_DIMENSION];

Wenn Sie nicht wissen, ARRAY_DIMENSION Sie könnten so:

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

oder diese, wenn Sie in der Arraylist dagegen String Reihenfolge nicht:

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

Andere Tipps

Sie müssen das Array mit der richtigen Anzahl von Elementen erstellen, mit zu beginnen. So etwas wie folgt aus:

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;    
}

Eine möglicherweise schönere Alternative ist jedoch ein List<String> zurückzukehren anstelle eines String-Array. Ich weiß nicht, die FeedParser API, aber wenn Sie die Einzelteile durchlaufen können stattdessen könnte man so etwas tun:

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;    
}

Dies wird auch funktionieren, wenn Sie nicht wissen, wie viele Artikel gibt es mit zu beginnen. Wenn Java schließlich kurze Schließungen wird, können Sie auch in der Lage sein, dies auszudrücken, auch einfach, wie man es in C # mit LINQ:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top