Allo ich möchte, ohne den Befehl startsWith, einen String auf Gleichheit überprüfen. Mir fällt hier der equals Befehl ein. z.b String Zk = "abcdef"; if(Zk.equals("ghi")){...;} so könnte ich allgemein, gucken ob Zk = ghi ist. Nur jetzt möchte ich nur die ersten 3 Elemente von Zk auf Gleichheit prüfen. Weiß jemand wie das gehen könnte?
Tom schrieb: > Weiß jemand wie > das gehen könnte? Ja wissen die meisten hier. Nur dass wir hier nicht deine Hausaufgaben machen.
Ich würde memcmp(Zk,"ghi",3); nehmen, Bei einer Definition char Zk[7]; aber ich programmiere ja auch in C.
Vielleicht solltest du mal verraten um welche Sprache es geht...
D. I. schrieb: > Tom schrieb: >> Weiß jemand wie >> das gehen könnte? > > Ja wissen die meisten hier. Nur dass wir hier nicht deine Hausaufgaben > machen. Danke für deinen Kommentar! Könnte es so gehen? String[] Zkneu = new String[3]; for(int i=0;i<3;i++){ Zkneu[i] = Zk[i];} if(Zkneu.equals("ghi")){...;} @MaWin , den Befehl kenne ich nicht und ich möchte auch mit equals arbeiten.
troll schrieb: > Vielleicht solltest du mal verraten um welche Sprache es geht... das sieht ein Blinder mit Krückstock ... c#
Tom schrieb: > Könnte es so gehen? > > String[] Zkneu = new String[3]; > for(int i=0;i<3;i++){ > Zkneu[i] = Zk[i];} > > if(Zkneu.equals("ghi")){...;} Probiers aus, jags durch den compiler und führs aus und schau was es tut, wir sind hier nicht in der Chemie. Jedenfalls die grundlegende Idee ist korrekt ;)
D. I. schrieb: > Tom schrieb: >> Könnte es so gehen? >> >> String[] Zkneu = new String[3]; >> for(int i=0;i<3;i++){ >> Zkneu[i] = Zk[i];} >> >> if(Zkneu.equals("ghi")){...;} > > Probiers aus, jags durch den compiler und führs aus und schau was es > tut, wir sind hier nicht in der Chemie. > > Jedenfalls die grundlegende Idee ist korrekt ;) Der Compiler sagt: array required, but java.lang.String found
es gibt doch wohl ein substring in java if(Zk.Substring(0,3).equals("ghi")){...;}
Tom schrieb: > Der Compiler sagt: array required, but java.lang.String found Und weiter? Verstehe diese Meldung, beseitige die Ursache und dann gehts weiter. Nur so lernt man programmieren.
Peter II schrieb: > es gibt doch wohl ein substring in java > > if(Zk.Substring(0,3).equals("ghi")){...;} Ja gibt es wohl, allerdings substring klein geschrieben.
> String[] Zkneu = new String[3];
Was so den der Käse?
Mach dich mal über Datentypen schlau. Vor allem, welcher Unterschied
zwischen einem Character Array und einem String Array besteht. Und deren
Vergleichsmöglichkeit.
Es gibt so schöne Bücher. Aber niemand liest diese. heul
Stefan Giebler schrieb: > troll schrieb: >> Vielleicht solltest du mal verraten um welche Sprache es geht... > > das sieht ein Blinder mit Krückstock ... c# oder auch nicht..
Alter, mach deine Hausaufgaben selber. Da musste jeder von uns durch und abschreiben bringt gar nichts. Gruß Jonas
Mensch, das ist doch in Java ganz einfach... man kann einfach die Tools nehmen, die für sowas optimal geeignet sind. Runtime.getRuntime().exec(new String[]{"perl","-e" ..... :)
Jonas Biensack schrieb: > Alter, mach deine Hausaufgaben selber. Da musste jeder von uns durch und > abschreiben bringt gar nichts. > > Gruß Jonas Wo ist dein Problem? Braust ihr nicht zu antworten! Für alle, die es interessiert ich habe es hinbekommen mir hat charAt() geholfen.
equals vergleicht die objekte auf gleichheit
1 | if(Zk.Substring(0,3).equals("ghi")){...;} |
wird daher niemals true werden. unter http://docs.oracle.com/javase/6/docs/api/java/lang/String.html findest du zwei methoden, die genau das von dir gewünschte verhalten produzieren (tipp: es kommt das englische wort für "vergleichen" darin vor) edith sagt: wer nicht bis zum ende liest ist selber schuld kein Schwätzer schrieb: > Für alle, die es interessiert ich habe es hinbekommen mir hat charAt() > geholfen. in dem fall hats vielleicht funktioniert, ist aber nicht unbedingt das mittel der wahl, da charAt nur genau eine position liefert (und du damit pro verglichener stelle eine abfrage brauchst).
Daniel F. schrieb: > equals vergleicht die objekte auf gleichheitif(Zk.Substring(0,3).equals("ghi")){...;} > wird daher niemals true werden. das lese ich aber was anderes aus der doku public boolean equals(Object anObject) Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.
> equals vergleicht die objekte auf gleichheit > wird daher niemals true werden. Du solltest eine Dokumentation auch lesen, bevor du auf diese verweist. > Die Methode equals() > Die Klasse String überschreibt die aus der Klasse Object geerbte Methode equals(), um > > zwei Strings vergleichen zu können. Die Methode gibt true zurück, falls die Strings gleich > lang sind und Zeichen für Zeichen übereinstimmen.
kein Schwätzer schrieb: > Für alle, die es interessiert ich habe es hinbekommen mir hat charAt() > geholfen. Das klingt nach keiner guten Lösung. Hast du ALLE Sonderfälle berücksicht? Auch die in denen dein String zb kürzer als 3 Zeichen ist?
Daniel F. schrieb: > equals vergleicht die objekte auf gleichheit Ja und Nein, equals Vergleicht, das zwei Objektreferenzen nach Ansicht des Objekterstellers gleichen, so wie sich zwei Eier gleichen aber doch nicht die selben sind. Ob es das selbe Objekt ist vergleicht man mit == Und wie schon korrekt festgestellt wurde, so ist bei Strings die Definition für gleich/equals, dass sie die selbe Länge haben und Zeichen für Zeichen übereinstimmen, was auch so in der von dir verlinkten Doku steht. compareTo ist wieder ein anderes Thema, und der einzige Kontrakt ist, das wenn compareTo 0 zurück-liefert auch equals true liefern sollte (und umgekehrt), das ist aber nicht zwingend.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.