Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

problema input

0 views
Skip to first unread message

Francesco Dipalo

unread,
Oct 25, 2004, 1:32:49 PM10/25/04
to

Ora ho un altro problema: ho eseguito:

code:------------------------------------------------------------------------------try
{
System.out.print("Servizio principale: ");
BufferedReader in1= new BufferedReader(new
InputStreamReader(System.in));
String c_Nomefile1 = in1.readLine();
System.out.print("Servizio da comporre: ");
BufferedReader in2= new BufferedReader(new
InputStreamReader(System.in));
String c_Nomefile2 = in2.readLine();
c_Nomefile =
c_Nomefile1.substring(0,c_Nomefile1.lastIndexOf(".")) + c_Nomefile2; //riga
incriminata
} catch (Exception e) { e.printStackTrace(); }

System.out.println(c_Nomefile);------------------------------------------------------------------------------

In compilazione non dą problemi; in esecuzione mi viene sollevata questa
eccezione:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
at Client.main(Client.java:32)

Come mai?
--
TIA


Vjger

unread,
Oct 26, 2004, 9:15:04 AM10/26/04
to
"Francesco Dipalo" <bo...@email.it> wrote in message news:<5Nafd.530$Ni....@twister1.libero.it>...

> Ora ho un altro problema: ho eseguito:
>
>
>
> code:------------------------------------------------------------------------------try
> {
> System.out.print("Servizio principale: ");
> BufferedReader in1= new BufferedReader(new
> InputStreamReader(System.in));
> String c_Nomefile1 = in1.readLine();
> System.out.print("Servizio da comporre: ");
> BufferedReader in2= new BufferedReader(new
> InputStreamReader(System.in));
> String c_Nomefile2 = in2.readLine();
> c_Nomefile =
> c_Nomefile1.substring(0,c_Nomefile1.lastIndexOf(".")) + c_Nomefile2; //riga
> incriminata
> } catch (Exception e) { e.printStackTrace(); }
>
> System.out.println(c_Nomefile);------------------------------------------------------------------------------
>
> In compilazione non dà problemi; in esecuzione mi viene sollevata questa
> eccezione:
> java.lang.StringIndexOutOfBoundsException: String index out of range: -1
> at java.lang.String.substring(Unknown Source)
> at Client.main(Client.java:32)
>
> Come mai?

Vuol dire che "in2.readLine()" legge una stringa NON contenente il ".".
In tal caso lastIndexOf(".") restituisce -1 che non è un indice valido.

stefano manni

unread,
Oct 28, 2004, 9:30:47 AM10/28/04
to
Il problema è che USI c_Nomefile2 prima di aver finito di inizializzarlo!
in pratica tu fai qualcosa tipo

int x=x+1..
non ha senso perchè x è ancora incompleta..
nel tuo caso x è c_NomeFile2

Spero di averti risolto il dubbio.
Stefano

"Francesco Dipalo" <bo...@email.it> wrote in message news:<5Nafd.530$Ni....@twister1.libero.it>...

> Ora ho un altro problema: ho eseguito:
>
>
>
> code:------------------------------------------------------------------------------try
> {
> System.out.print("Servizio principale: ");
> BufferedReader in1= new BufferedReader(new
> InputStreamReader(System.in));
> String c_Nomefile1 = in1.readLine();
> System.out.print("Servizio da comporre: ");
> BufferedReader in2= new BufferedReader(new
> InputStreamReader(System.in));
> String c_Nomefile2 = in2.readLine();
> c_Nomefile =
> c_Nomefile1.substring(0,c_Nomefile1.lastIndexOf(".")) + c_Nomefile2; //riga
> incriminata
> } catch (Exception e) { e.printStackTrace(); }
>
> System.out.println(c_Nomefile);------------------------------------------------------------------------------
>

> In compilazione non dà problemi; in esecuzione mi viene sollevata questa

0 new messages