ok ich habe mich jetzt ein wenig gespielt mit dem ganzen und jetzt funktioniert auch das einlesen eines koordinatenpaares -> nur bei mehreren gibt es probleme
wenn ich z.b. eingebe (3,4) (4,5)= gibt er folgende fehlermeldung aus:
java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(String.java:1444)
at Konvneck.einlesen(Konvneck.java:31)
at Konvneck.main(Konvneck.java:15)
Exception in thread "main"
das erscheint für mich auch klar weil ein substring ja bei einem leerzeichen endet -> nur wie kann ich dem jetzt entgegen wirken?
außerdem wie kann ich die ganzen gewonnen zahlen speichern um mit ihnen weiterzuarbeiten... ein array geht ja mal nicht weil es ja eine vorgegebene größe haben muss -> die weiß ich ja aber nicht!
Code:
import eprog.*;
public class Konvneck extends EprogIO
{
public static void main(String[] args)
{
einlesen();
}
/////////////////////////
// Methode zum Einlesen//
/////////////////////////
private static void einlesen()
{
float xKoord, yKoord;
String input = ""; // dieser String enthält die Eingabe
int counter = 0; // zum Zählen der Koordinatenpaare
do
{
input = readWord();
String teil = input.substring(input.indexOf('(')+1, input.indexOf(')'));
try
{
xKoord=Float.parseFloat(teil.substring(0, teil.indexOf(',')));
yKoord=Float.parseFloat(teil.substring(teil.indexOf(',')+1, teil.length()));
println (xKoord);
println (yKoord);
counter++;
println (counter);
}
catch (NumberFormatException e)
{
throw new IllegalArgumentException("FALSCHE EINGABE");
}
if ( (xKoord < -100) || (xKoord > 100) || (yKoord < -100) || (yKoord > 100) )
{
println ("FALSCHE EINGABE");
}
} while (!(input.endsWith("=")));
if ( (counter < 3) || (counter > 15) )
{
println ("FALSCHE EINGABE");
}
}
}
mfg poison