String Array Probleme

  • Themenstarter Themenstarter Hollowman
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
H

Hollowman

Gast
Hallo erst mal!
Bei mir geht es um folgendes.
Es gibt zwei String Arrays und zwar "Haltestellen" und "Abfahrtszeiten".
Nun will ich dazu eine Abfrage erstellen, die folgendermaßen aussieht.

String abfrage1 (String h, String t){
boolean gefunden = false;
int i;

for(i=0;i<Haltestellen.length;i++){
if (Haltestellen.equals(h))
gefunden = true;
else break;
}

if (gefunden = true){
int index;
index=i;
int j;

for(j=0; j<Abfahrtszeiten[index][j].length();j++){
if (Abfahrtszeiten[index][j]>t)
return abfrage1[j];
else return null;

Mit dem ersten Teil bin ich eigentlich zufrieden, verbesserungsvorschläge sind trotzdem erwünscht.
Aber bei der zweiten for Schleife bzw. der if-Anweisung darunter hackt es dann.
Ich will ein Abfahrtszeiten bei i und j mit der Zeit t vergleichen. Es geht jedoch nicht bei Strings.
Wie könnte ich das besser machen oder wie kann man dann Strings bzw. Stringpositionen irgendwie vergleichen?
Wäre sehr dankbar für Hilfe, sitz schon sehr lange verzweifelt davor.
 
Für die zweite if-Abfrage ist die Variable gefunden nicht sichtbar, da sie in der Methode darüber deklariert ist.

Code-Tags verwenden!!

Edit: Nein - Quatsch - du hast dort in deinem Code überhaupt ein Klammerproblem - löse das erst mal (Vier öffnende und eine schließende) :bahnhof:
 
Hi,
String kannst du mit .equals vergleichen.

Zur letzten if Zeile noch etwas:

a) mit if willst du ja was auf Korrektheit prüfen, daher musst du == anstatt = nutzen. Mit = weist du gefunden den Wert true zu.

b) In diesem if kannst du dir zudem Schreibarbeit sparen, da if (gefunden == true) if(gefunden) entspricht (bzw. if(gefunden == false) if(!gefunden)).

Cu
Alex
 
Bitte benutzte Codetex, damit man Dir besser und schneller helfen kann Danke.


Code:
String abfrage1 (String h, String t){
boolean gefunden = false;
int i;

for(i=0;i<Haltestellen.length;i++){
if (Haltestellen[i].equals(h))
gefunden = true;
else break;
}

if (gefunden){ //Hier reicht ein if (gefunden), es wird überprüft, ob gefunden true oder false ist.
int index;
index=i;
int j;

for(j=0; j<Abfahrtszeiten[index][j].length();j++){
if (Abfahrtszeiten[index][j]>t)
return abfrage1[i][j];
else return null;
 
Vielen Dank erst mal für die Hilfestellung.
Jetzt hab ich trotzdem noch ein Problem.
bei return abfrage1 [j]; wirft er mir immer noch einen Fehler.
Mit was hängt dieser zusammen?
 
was ist abfrage1 für ein Objekt, wo definiert?
wie lautet die Exception?
 
wette mal auf NullPointerException...

was ist abfrage1... wird der irgendwo initialisiert ? und auch mit werden gefuellt ?
 
abfrage1 cannot be resolved.
ich will die abfrage im obigen beispiel ausgeben jedoch jetzt mit den werten von i und j die in den beiden for schleifen vorhanden sind.
Sollte ich lieber schreiben return abfrage1(i,j) geht aber auch nicht!
Wie könnte ich es dann machen?
 
mit 'ich will irgendwas' und 'geht nicht' jedenfalls nicht,
sondern mit nüchtern richtiger Programmierung, was natürlich nicht leicht ist, das ist klar

ich will die abfrage im obigen beispiel ausgeben
?
jedoch jetzt mit den werten von i und j
?
die in den beiden for schleifen vorhanden sind.
??
 
Hollowman hat gesagt.:
abfrage1 cannot be resolved.
ich will die abfrage im obigen beispiel ausgeben jedoch jetzt mit den werten von i und j die in den beiden for schleifen vorhanden sind.
Sollte ich lieber schreiben return abfrage1(i,j) geht aber auch nicht!
Wie könnte ich es dann machen?
Du solltest dir überlegen was du genau zurückliefern möchtest...
abfrage1 ist ne Methode, du willst irgendeinen Inhalt eines zweidimensionalen Arrays zurückliefern. Nur von der Methode her würde ich auf Abfahrtszeiten tippen.
 
Ja ich will die Abfahrtszeiten ausgeben.
Jedoch hab ich mir jetzt etwas anderes überlegt.
Und zwar
bei der letzten for schleife
for(j=0;j<abfahrtszeiten[index][j].length();j++){
ich mach keine if-Anweisung sondern ein while
while schleife und ein compareTo.
Hat da jemand ne Idee
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben