Hallo Leute
Ich habe ein ziemlich kniffliges Problem. (mind. für mich)
Code:
String foo = "1234";
String bar = "1234:4321";
String[] a = bar.splitt(":");
if(foo == a[1]) {
System.out.println(":D");
}
Ich habe das Ganze schon mit equals versucht. Bei mir ist foo eigentlich eine Klasse, bzw. Methode, die einen String als Rückgabe liefert. Ich weiss nicht, ob das einen Unterschied ausmacht.
Ich habe glaube ein kleiner Fehler gemacht. Ich brauche bei mir a[0] für eine Funktion dessen return ich mit a[1] vergleichen möchte. Gibt es da eine Alternative? Oder muss ich mich mit diesen Strings herumschlagen...
Bevor wir hier anfangen, möglicherweise aneinander vorbeizureden: Zeig doch bitte das Stück Code, um das es konkret geht. Dein Code am Anfang ist schon ziemlich "verbraucht", so wie eine Variable beim Lösen eines Gleichungssystems.
Das ist meine letzte "Fassung"... Sie funktioniert auch nicht...
Bei GetLine(pin,"",'\n',100); kommt logquiqum:1234
quiqum 1234 sind korrekte Logindaten
Ich glaube, in diesem Stück Code sind mehr Fehler als Zeilen.
Wo fängt man da am besten an? Bezeichner sind nicht nach Namenskonventionen geformt, alles sieht sehr stark nach prozeduraler Programmierung aus, Code wiederholt sich mehrfach, Exceptions scheinen gänzlich unbekannt zu sein; der Umgang mit Strings (worum es ja hier eigentlich gehen sollte) scheint hier fast noch das kleinere Problem zu sein.
EDIT:
Teilweise scheinen auch nicht die Anforderungen an einen Algorithmus bekannt zu sein: allgemein, ausführbar, eindeutig, endlich. (So kenne ich das zumindest.) Dieser Code dagegen scheint teilweise nicht allgemein zu sein und neigt dazu, unendlich lang zu werden ...
Und woher sollen wir wissen, was GetLine() macht? Zeig mal die Methode.
Im Übrigen hat Ark völlig Recht: Es würde nicht schaden den Code erstmal gemäss Name Conventions zu überarbeiten.
Variablen- und Methodennamen schreibt man in camelCase.
Ja, ich programmiere schon lange, jedoch habe ich nie Richtig gelernt, wie man "richtig" programmiert. Exception usw. sind natürlich drin, doch in diesem Teil nicht sichtbar. Der Code ist auch noch in der Anfangsphase und wird nur langsam Modularisiert...
Kennt jemand eine gute Seite (im Netz), wo man "schönes/ richtiges Programmieren" lernen/nachlesen kann?
Der Fehler lag daran, dass der Telnet Client noch ein (char)13 am Ende der Zeile einfügte (das bekannte '\r'). Dieses habe ich leider völlig vergessen, da ich nur '\n' nehme...
GetLine() gibt mir einfach eine Zeile, welche es von einer PipedInputStream herausliest.
Wie wäre es mit Folgendem?
[HIGHLIGHT="Java"]BufferedReader br = new BufferedReader(new InputStreamReader(new PipedInputStream(blubb)));
String line = br.readLine();[/HIGHLIGHT]
"Richtiges" Programmieren wird es wahrscheinlich auch nie geben: Geh mit einem Problem zu 10 Informatikern, und du bekommst 15 Lösungen. Man kann aber für eine Programmiersprachengeneration/Programmiersprache angemessen programmieren. Da gehört dein Code wohl leider nicht dazu. So etwas macht sich auch nicht über Nacht, man muss halt viele (leidvolle) Erfahrungen machen und auch Code von Erfahrenen nachvollziehen (hier im Forum gibt's einen Experten, der gerade das ganz besonders gut kann! *ironie*).
Kram doch einfach ein paar alte Programme/Codestücke aus und überlege, was du aus heutiger Sicht anders machen würdest. Auch dabei kann man eine Menge lernen.
Hallo Leute
Ich habe ein ziemlich kniffliges Problem. (mind. für mich)
Code:
String foo = "1234";
String bar = "1234:4321";
String[] a = bar.splitt(":");
if(foo == a[1]) {
System.out.println(":D");
}
Ich habe das Ganze schon mit equals versucht. Bei mir ist foo eigentlich eine Klasse, bzw. Methode, die einen String als Rückgabe liefert. Ich weiss nicht, ob das einen Unterschied ausmacht.