Containy Geschrieben 10. Juli 2002 Teilen Geschrieben 10. Juli 2002 Hallo Leute, ich soll programmieren wie man aus einem String ausgibt, wie oft der Buchstabe e drin vorkommt und mir hat nie jemand wirklich JAVA bei gebracht. Habt Ihr ne Ahnung wie ich das proggen kann? Wäre super, vielen Dank, Gruß Containy:confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T. Schiffler Geschrieben 10. Juli 2002 Teilen Geschrieben 10. Juli 2002 Hi Es wäre einfach Dir jetzt die Lösung zu nennen aber dadurch lernst Du leider nix Nimm Dir doch die JavaDoc und schau mal unter java.lang.String und dessen Methoden Dort wirst Du die erforderlichen Methoden finden Nicht böse sein aber nur so lernt man es Gruß Erbeere Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Containy Geschrieben 10. Juli 2002 Autor Teilen Geschrieben 10. Juli 2002 Deswegen bin ich doch nicht böse, ich tipp jetzt einfach mal durch die Javadoc, wenns aber nicht funktioniert, meld ich mich wieder! ===>das war eine drohung<=== Gruß Containy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Badgott Geschrieben 11. Juli 2002 Teilen Geschrieben 11. Juli 2002 und hats geklapt? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Containy Geschrieben 11. Juli 2002 Autor Teilen Geschrieben 11. Juli 2002 Naja ein bisschen hats geholfen, aber eigentlich hat mir ein Klassenkamerad das geproggt, obwohls ja voll easy eigentlich ist, aber ich blick immer noch nicht so wirklich durch: Aber trotzdem so siehts aus: ----------------------------------------------------- public class stringy { public stringy() { } public static void main(String args[]) { String str = "Heinrich Thein"; int j=0; char c='e'; for (int i=0; i<str.length(); i++ ){ if (str.charAt(i)==c){ j++;} } System.out.println ("Es sind "+j+" dumme " +c+" drinnen"); } } ------------------------------------------- Gruß Containy Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Naberius Geschrieben 16. Juli 2002 Teilen Geschrieben 16. Juli 2002 Kleiner Tip, schau dir mal die IndexOf() - Methode der String Klasse an. Damit geht das sehr viel komfortabler. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T. Schiffler Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Stimmt Schmeiss den obigen Quellcode weg und versuche mal IndexOf String x = "Das ist ein Teststring"; if (x.indexOf ("v") > 0) { System.out.println("Enthalten"); } else { System.out.println("nicht Enthalten"); } x = "Hier ist es vorhanden"; if (x.indexOf ("v") > 0) { System.out.println("Enthalten"); } else { System.out.println("nicht Enthalten"); } Mit IndexOf findest Du die Position eines Characters in einem String. Ist der Character nicht vorhanden so wird -1 zurückgegeben (wenn ich mich recht entsinne), ist er vorhanden wird die Position zurückgegeben. Hoffe damit kannste was anfangen Gruß Erbeere Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Guten Morgen!! Also entweder es ist noch zu früh und ich noch zu verschlafen, oder die beiden Posts über mir sind falsch. Dir Aufgabendstellung war doch die Anzahl des Buchstabens, nicht die Position, oder? Und dann war die Lösung mit der Schleife schon richtig. k.o.b Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LoCal Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Original geschrieben von kingofbrain Guten Morgen!! Also entweder es ist noch zu früh und ich noch zu verschlafen, oder die beiden Posts über mir sind falsch. Dir Aufgabendstellung war doch die Anzahl des Buchstabens, nicht die Position, oder? Und dann war die Lösung mit der Schleife schon richtig. k.o.b Nö, Du hast recht. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
T. Schiffler Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Hi Stimmt, sorry Aber ich würde es nicht so machen Es gibt die Möglichkeit zwecks IndexOf und indexOf mit offset Halte ich für Sinnvoller als den String mit Charactern durchzulaufen ! Erbeere P.S. Deine Lösung funzt allerdings natürlich auch Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LoCal Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Stimmt... indexOf(String, offset) würde auch funktionieren, aber in der Unterrichtstunde hätte das nciht so gepasst. Aber das kannst Du ja nciht wissen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 17. Juli 2002 Teilen Geschrieben 17. Juli 2002 Original geschrieben von LoCal Stimmt... indexOf(String, offset) würde auch funktionieren, aber in der Unterrichtstunde hätte das nciht so gepasst. Aber das kannst Du ja nciht wissen Das würde nicht nur funktionieren, sondern wäre auch deutlich effizienter. Vielleicht kannste ja deinen Lehrer mit so etwas wie: int offset=0; String str = "fügt Deine Signatur am Ende Deines Beitrags ein"; char c = 'e'; while((offset=str.indexOf(c, offset)+1) != 0) { z++; } beeindrucken. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LaceHater Geschrieben 20. Juli 2002 Teilen Geschrieben 20. Juli 2002 Hi, leider ist es überhaupt nicht effizienter das mit indexOf() zu machen. indexOf() läuft im Grunde auch nur über das im String-Objekt gekapselte Char-Array. Ihr teilt also den Durchlauf über den ganzen String nur in mehrere Teilstücke auf. Im Grunde hat diese Variante sogar mehr overhead als die erste, und sollte sogar leicht ineffizienter sein. Viele Grüße, Michael Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 20. Juli 2002 Teilen Geschrieben 20. Juli 2002 Hallo, Sun muss da die Abarbeitung von charAt abgeändert haben. Unter 1.3.1_02 ist die indexOf Methode noch deutlich schneller. Unter 1.4.0 ist auf einmal die charAt Methode ein bisschen schneller. Wie schon von dir angemerkt durch den größeren Overhead von indexOf. Meine Kenntnisse bezogen sich auf 1.3 Beim testen sind mir jetzt aber die Unterschiede aufgefallen. Gruß Jaraz ---------------------------------------- Testprogramm: import java.io.*; public class Test { public Test() { String str = "fügt Deine Signatur am Ende Deines Beitrags ein"; int j; int offset; char c='e'; long zeit = System.currentTimeMillis(); for(int g=0; g<2; g++){ offset=0; j=0; while((offset=str.indexOf(c, offset)+1) != 0) { j++; } } System.out.println("Sekunden: "+((System.currentTimeMillis()-zeit)/1000)); zeit = System.currentTimeMillis(); for(int k=0; k<2; k++){ j=0; for (int i=0; i<str.length(); i++ ){ if (str.charAt(i)==c){ j++; } } } System.out.println("Sekunden: "+((System.currentTimeMillis()-zeit)/1000)); } public static void main(String args[]) { Test test = new Test(); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.