String auf Gleichheit der ersten 3 Buchstaben überprüfen

Gast #3193560
Lesenswert?
• ▲
▼
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?
Gast #3193619
Lesenswert?
• ▲
▼
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.
Gast #3193627
Lesenswert?
• ▲
▼
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 ;)
Gast #3193636
Lesenswert?
• ▲
▼
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
Gast #3193663
Lesenswert?
• ▲
▼
> 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
#3194555
Lesenswert?
• ▲
▼
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).
Gast #3194557
Lesenswert?
• ▲
▼
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.
Gast #3194576
Lesenswert?
• ▲
▼
> 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.
Persönliche Seite #3194769
Lesenswert?
• ▲
▼
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren