Problema conS trings

palomarp
06 de Febrero del 2009
Hola,

tengo un pobremilla con un programa que estoy haciendo. Se supone que dicho programa llama a un servlet, que me devuelve una serie de datos en formato html. Lo que se hace a continuación es extraer ciertos valores para utilizarlos posteriormente.

Aquí está una parte del código, que es la que me da el error:

private static String [] readXMLResponse(InputStream in) throws IOException
{

StringBuffer sb = new StringBuffer();
Reader reader = new InputStreamReader(in, "UTF-8");
int c;
while ((c = in.read()) != -1)
sb.append((char)c);

String document = sb.toString();

String startTag1 = "<UID1>";
String endTag1 = "</UID1>";
System.out.println(startTag1);
System.out.println(endTag1);
System.out.println(longitud1);
int start1 = document.indexOf(startTag1) + startTag1.length();
int end1 = document.indexOf(endTag1);

String U1 = document.substring(start1, end1);

....


Al ejecutar dicho código, me da error: StrinIndexOutOfBounds: Index out of range: -6. Depurando, he descubierto que los valores de los enteros son:

start1= 5 (correcto)
end1 = -1 (incorrecto: tendría que valer 16)

¿Alguien podría echarme una mano? ¿Cuál puede ser el error?

Muchas gracias por todo.

Un saludo,

Paloma

varek
06 de Febrero del 2009
Te retorna -1 porque no encuentra el "</UID1>" el indexOf retorna -1 si no lo encuentras sera que no aparece o que lo has podido escribir mal

un saludo