Veröffentlicht 10. Juli 200223 j 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:
10. Juli 200223 j 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
10. Juli 200223 j Autor 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
11. Juli 200223 j Autor 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
16. Juli 200223 j Kleiner Tip, schau dir mal die IndexOf() - Methode der String Klasse an. Damit geht das sehr viel komfortabler.
17. Juli 200223 j 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
17. Juli 200223 j 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
17. Juli 200223 j 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.
17. Juli 200223 j 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
17. Juli 200223 j 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
17. Juli 200223 j 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
20. Juli 200223 j 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
20. Juli 200223 j 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(); } }
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.