Originariamente inviato da Miroku

Proprio non capisco... perké nella prima riga... lui va a prendersi il secondo < e non il primo?!
Ma guarda che l'output è corretto. Sei tu che sbagli ad interpretare il numero dell'indice che ti esce perchè sbagli a fare il System.out.println

Tu hai scritto:
codice:
System.out.println(linea+"\n"+linea.indexOf("<")+1 +"\n");
la parte in grassetto non esegue la somma, ma concatena le stringhe dato che prima c'è una somma di stringhe.

Infatti ti esce scritto 11 dove il primo 1 è l'indexOf e l'altro 1 è l'1 che tu aggiungi manualmente. Poi sei stato sfortunato che il carattere 11 coincida proprio col secondo <

Andrebbe corretta così se vuoi vedere gli indici come si deve:

codice:
System.out.println(linea+"\n"+(linea.indexOf("<")+1)+"\n");