ho un problema che spero qualcuno mi aiuti a risolvere...sto facendo un programmino che deve leggere da una pagina web, metto tutto in un a stringa e da qui devo tirare fuori delle informazioni, la prima riga riesco, ma ho bisogno le prime 10, invece mi restituisce 10 volte il primo, non sono molto esperto quindi spero che qualcuno possa aiutarmi a capire cosa sbaglio. Questa è la parte di codice:
URL url = new URL("indirizzo");
con = (HttpURLConnection) url.openConnection();
is = con.getInputStream();
}
ByteArrayOutputStream bos = new ByteArrayOutputStream();
int r;
while ((r = is.read()) != -1)
{
bos.write(r);
}
byte[] data = bos.toByteArray();
String ST=(new String(data));
con.disconnect();
int n=0;
Pattern pattern = Pattern.compile ("<td class=\"conc\" bgcolor=\"FFCC66\" width=\"80\"><p align=\"center\">(.*?)<script type=\"text/javascript\">", Pattern.DOTALL | Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher (ST);
if (matcher.find ())
{
String titolo = matcher.group (1);
StringTokenizer st= new StringTokenizer(titolo,"\r\n");
while (st.hasMoreTokens()&& n!=10) {
System.out.println(st.nextToken());
System.out.println("");
n++;
String s= titolo.substring(10);
int p1=s.indexOf("\"");
Artista=s.substring(0, p1);
System.out.println("ARTISTA: "+Artista);
int p2=s.indexOf(">");
int p3=s.indexOf("</a>");
Data=s.substring(p2+1, p3);
System.out.println("DATA: "+Data);
String s2=s.substring(p3);
String s3=s2.substring(88);
int p4=s3.indexOf("\">");
int p5=s3.indexOf("</a>");
Locale=s3.substring(p4+2, p5);
System.out.println("LOCALE: "+ Locale);
int p6=s3.indexOf("\"center\">");
String s4=s3.substring(p6+9);
int p7=s4.indexOf("</p>");
Città=s4.substring(0, p7);
System.out.println("CITTà: "+ Città);
}
Se qualcuno può darmi un consiglio grazie!

Rispondi quotando