Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Ausgabe aus einem String

Empfohlene Antworten

Veröffentlicht

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:

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 :D

Nicht böse sein aber nur so lernt man es

Gruß Erbeere

und hats geklapt?

  • 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

Kleiner Tip, schau dir mal die IndexOf() - Methode der String Klasse an. Damit geht das sehr viel komfortabler.

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

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

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.

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

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 :)

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. :D

Gruß Jaraz

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

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 :D

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.