WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 30.12.2003, 22:44   #1
poison
Jr. Member
 
Registriert seit: 01.04.2001
Alter: 41
Beiträge: 59


Standard [java] koordinatenpaare als string einlesen

hallo!

ich habe ein problem bei folgender aufgabe:
ich soll die koordinatenpaare eines vielecks als string einlesen, die folgenden aufbau haben:
"(x,y)" wobei x und y Zahlen sind

der datensatz wird durch "=" abgeschlossen

also ich weiß wie man einen string einliest und dann die einzelnen zeichen ausliest -> damit könnte ich ja schon einmal die zahlen herausfiltern
(ich hoffe dieser gedankengang von mir ist richtig - bin nämlich noch programmieranfänger!)

nur wie speichere ich die zahlen dann um mit ihnen rechnen zu können - geht das vielleicht mit einem array?

bin um jeden vorschlag dankbar!

mfg poison
poison ist offline   Mit Zitat antworten
Alt 30.12.2003, 22:54   #2
Br@in
Elite
 
Registriert seit: 18.10.2000
Beiträge: 1.469


Standard

angenommen x ist 145, dann liest du als string ein: 1 - 4 - 5

eine vorher angelegte INT-Variable zB "xkoor"

xkoor=1
xkoor=xkoor*10+4
xkoor=xkoor*10+5

[damit ist xkoor das 145...]

mit der ykoor machst es dann genauso

dann übernimmst immer xkoor und ykoor in die nächste Zeile des Arrays...

Problem gelöst?
____________________________________
Science is like sex ...
sometimes something useful comes out...
BUT THATS NOT THE REASON WHY WE ARE DOING IT!!!
Br@in ist offline   Mit Zitat antworten
Alt 30.12.2003, 23:33   #3
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Schaue dir mal die klasse java.awt.Point an, die beschreibt an sich eine koordinate im awt. entweder du kannst diese verwenden, oder du schreibst dir eine eigene klasse die die koordinaten so darstellt, wie du sie brauchst, bzw wenn du damit rechen willst, wird dir sowiseo nichts übrigbleiben als eine eigene klasse und die rechnungsarten al methoden zu implementieren.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 31.12.2003, 16:38   #4
poison
Jr. Member
 
Registriert seit: 01.04.2001
Alter: 41
Beiträge: 59


Standard

also ich habe jetzt versucht die zahlen mittels StringTokenizer herauszufiltern aber irgendwo gibt es ein problem...

Code:
import eprog.*;

public class Konvneck extends EprogIO
{
    public static void main (String[] args)
    {
        
    String Eingabe = "";
    
    do
    {
        Eingabe = readWord();
        
        StringTokenizer konvertiert = new StringTokenizer (Eingabe, '(', ',', ')');
        println (konvertiert);
        
        while (konvertiert.hasMoreTokens()) {
         System.out.println(konvertiert.nextToken());
      }

    } while (!(Eingabe.endsWith("=")));
    
    }
}
irgendwie gibt er immer fehlermeldungen aus
was mache ich falsch?

mfg poison
poison ist offline   Mit Zitat antworten
Alt 31.12.2003, 16:50   #5
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

Der String Tokenizer kennt nur einen Delimiter. Du versuchst ihm 3 mitzugenen. Wenn die Eingabe immer (y,y) aussieht dann, entferne den 1. und letzte char. Dan gehts mit einen Stringtokenizer mit delimiter ",". Ausserdem braucht der Tokenizer einen String als Delimiter, keinen char (" " statt ' ').

Ich würde es aber komplett anders machen: mit toCharArray in eine char Array umwandeln und dann mit Charakter.isDigit() die Zahlen rausparsen. Eventuell kannst mit indexOf(',') den String vorher noch teilen.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 31.12.2003, 17:40   #6
poison
Jr. Member
 
Registriert seit: 01.04.2001
Alter: 41
Beiträge: 59


Standard

Code:
import eprog.*;
import java.util.*;

public class Konvneck extends EprogIO
{
    public static void main (String[] args)
    {
        
    String Eingabe = "";
    
    do
    {
        Eingabe = readWord();
        
        char Zahlen[] = Eingabe.toCharArray();
        if (Charakter.isDigit())
        {}

    } while (!(Eingabe.endsWith("=")));
    
    }
}
meinst du so?
wie bekomme ich da die zahlen heraus?

danke auf jeden fall schon mal für deine hilfe!

mfg poison
poison ist offline   Mit Zitat antworten
Alt 31.12.2003, 17:48   #7
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

array durchiterien (mit for oder while schleife (wenn char zahl ist diese wegspeichern (zB. in StringBuffer), wenn wieder kein digit mehr ist -> diese mit Integer.parseInt(StringBuffer.toString()) in int umwandeln.

2. Möglichkeit mit indexOf('(') und indexOf(',') und indexOf(')') und der substring Methode von String die Zahlen rausholen.

1.Möglichkeit ist etwas komplizierter, dafür funktinoniert sie mit allen Zahlen in einen String, egal was sonst noch drinnen steht. 2.Möglichkeit ist einfacher, dafür funktiniert sie nur, wenn der String (x,y) aussieht.
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Alt 02.01.2004, 10:12   #8
poison
Jr. Member
 
Registriert seit: 01.04.2001
Alter: 41
Beiträge: 59


Standard

guten morgen!

also ich bekomme noch eine fehlermeldung wenn ich folgenden code versuche zu kompilieren:
Konvneck.java [27:1] isDigit(char) in java.lang.Character cannot be applied to (char[])
if ( (Character.isDigit(Zeichen)) ) // Soll überprüfen ob Zeichen eine Zahl ist
^
1 error
Errors compiling Konvneck.

ich verstehe die ausgabe nicht ganz - was muss ich ändern?

Code:
import eprog.*;

public class Konvneck extends EprogIO
{
    public static void main (String[] args)
    {
        
    String Eingabe = "";
    float Laenge = 0;
    
    do
    {
        Eingabe = readWord();
        
        char Zeichen[] = Eingabe.toCharArray();
        
       for (int i = 0; i <= Zeichen.length; i++)
       {
           if ( (Character.isDigit(Zeichen)) ) // Soll überprüfen ob Zeichen eine Zahl ist
           {
               println (Zeichen);
           }
       }

    } while (!(Eingabe.endsWith("=")));
    
    }
}
mfg poison
poison ist offline   Mit Zitat antworten
Alt 02.01.2004, 11:38   #9
jak
Inventar
 
Registriert seit: 13.06.2001
Beiträge: 1.830


Standard

Ich glaube da gehört statt:
Character.isDigit(Zeichen))
Character.isDigit(Zeichen[i]))

<edit>
Daher auch die Fehlermeldung: du versuchst die Funktion "isDigit" auf ein Array of char anzuwenden, nicht auf ein einzelnes char.
</edit>

Jak
____________________________________
Join the DNRC | Godwin\'s Law (thx@stona)
Documentation is like sex: If it\'s good, it\'s very, very good. If it\'s bad, it\'s better than nothing.
\"In theory, theory and practice are the same. In practice, they are not\" (Lawrence Berra)
jak ist offline   Mit Zitat antworten
Alt 02.01.2004, 12:30   #10
Tarjan
Quantensingularität
 
Registriert seit: 28.09.2000
Alter: 55
Beiträge: 8.336


Tarjan eine Nachricht über ICQ schicken
Standard

genau dass isses
____________________________________
Was ist klein, grün und dreieckig?
Ein kleines grünes Dreieck!


Bahnübergänge sind die härtesten Drogen der Welt! Ein Zug und du bist weg!
Tarjan ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:57 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag