/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Hvad er "StringIndexOutOfBoundsException" ~
Fra : Mads Zahle Østergaar~


Dato : 22-01-01 22:33

Er der der nogen der kan fortælle mig, hvorfor følgende program (der
kompiler uden problemer) (klassen SavitchIn læser keyboard input)

*****
public class InputSentence
{
public static void main(String[] args)
{
char answer, lastCharacter;
String sentence;
int sentenceLength, evenOrOddLength;

do
{
System.out.println("Enter a sentence and press \"enter\".");
sentence = SavitchIn.readLine();
sentenceLength = sentence.length();
evenOrOddLength = sentenceLength%2;
lastCharacter = sentence.charAt(sentenceLength);

if (lastCharacter == '?')
if (evenOrOddLength == 0)
System.out.print("Yes");
else
System.out.print("No");
else if (lastCharacter == '!')
System.out.print("Wow");
else
System.out.println("You always say \"" + sentence + "\"");
System.out.print("If you want to enter another sentence,");
System.out.print("please type \"y\". Otherwise type \"n\".");
answer = SavitchIn.readLineNonwhiteChar();
}while ((answer == 'y') || (answer == 'Y'));
}
}
****

giver følgende fejlmeddelse, når det køres:

*****
Enter a sentence and press "enter".
java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.lang.String.charAt(String.java:507)
at InputSentence.main(InputSentence.java:15)
Exception in thread "main"
******


På forhånd tak

Mads



 
 
Martin Moller Peders~ (22-01-2001)
Kommentar
Fra : Martin Moller Peders~


Dato : 22-01-01 22:54

In <FG1b6.56425$W81.621604@twister.sunsite.dk> "Mads Zahle Østergaard" <mzo@omk.dk> writes:

> lastCharacter = sentence.charAt(sentenceLength);

>java.lang.StringIndexOutOfBoundsException: String index out of range: 11

Fordi charAt taeller fra 0, dvs
du skal skrive
lastCharacter=sentence.charAt(sentenceLength-1);

Mvh
Martin



Mads Zahle Østergaar~ (22-01-2001)
Kommentar
Fra : Mads Zahle Østergaar~


Dato : 22-01-01 23:27

Takker - nu virker det. Jeg vidste det egentlig godt, men som "grøn" inden
for java-programmering, svipser den slags jo.

Mads

Martin Moller Pedersen skrev i meddelelsen
<94ia52$g90$1@news.net.uni-c.dk>...
>In <FG1b6.56425$W81.621604@twister.sunsite.dk> "Mads Zahle Østergaard"
<mzo@omk.dk> writes:
>
>> lastCharacter = sentence.charAt(sentenceLength);
>
>>java.lang.StringIndexOutOfBoundsException: String index out of range: 11
>
>Fordi charAt taeller fra 0, dvs
>du skal skrive
>lastCharacter=sentence.charAt(sentenceLength-1);
>
>Mvh
>Martin
>
>



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste