Einzelnen Beitrag anzeigen
Alt 03.01.2004, 19:52   #23
poison
Jr. Member
 
Registriert seit: 01.04.2001
Alter: 41
Beiträge: 59


Standard

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
poison ist offline   Mit Zitat antworten