Wie Programmiere ich einen Zähler?

3 Antworten

Wie Eclipse dir bereits anzeigt, ist deine For schleife falsch:

for(Initialisierung; Zielwert; Schrittweite) {
	// Anweisungen
}

http://www.java-programmieren.com/schleifen-java.php

Die länge eines Strings kannst du mit String.length() herausfinden, du könntest also einfach dein die länge von text direkt ermitteln, ohne schleife. Ansonsten kann man auch das char Array zu einem String konvertieren (wäre aber relativ unnötig da du ja vorher in ein char Array konvertierst):

char[] chars = {'T', 'e', 'c', 'h', 'i', 'e', ' ', 
						'D', 'e', 'l', 'i', 'g', 'h', 't'};


String string = new String(chars);
int laenge = string.length();

LG

Woher ich das weiß:Studium / Ausbildung – Gelernter Fachinformatiker, Freiberufl. Softwareentwickler

Zuerst einmal, warum machen deine zwei Methoden getText und TextHelper genau das gleiche?

Zweitens. Warum schreibst du eine extra Klasse Aufgabe 1. Ich meine du hast dann Objekte dieser Klasse die allerdings nur ein String Attribut haben. Es würde komplett reichen, einfach so Objekte des Types String zu erstellen und ggf. Methoden zu überschreiben.

Aber naja, angenommen aus irgendwelchen Gründen brauchst du dieses Setup genau so.

in der "Aufgabe1.java" hast du ja schon mit der Zähler Methode angefangen. Dafür kannst du den String in einen Chararray umwandeln, was du ja schon getan hast. Allerdings brauchst du jetzt keine Schleife oder so. Du kannst nun direkt mit rein.length; auf die Länge zugreifen

eine Zähler Methode könnte also so aussehen

public int Zähler(){

char[] rein = text.toCharArray();

return rein.length();

Ich würde prinzipiell auch bevorzugen, lieber den Zahlenwert zurückzugeben statt ihn direkt in der Methode auszugeben, ist aber auch hier Geschmackssache.

In der Mainmethode kannst du nun die Zahl ausgeben mit

System.out.println(text.Zähler());

regex9  02.03.2020, 23:02

Wenn du die Länge eines Arrays ermitteln möchtest, dann mit dem Attribut length.

return rein.length;

Wenn du die Länge eines Strings ermitteln möchtest, dann mit der Methode length.

return text.length();

Ein char-Array benötigst du also überhaupt nicht.

Des Weiteren sollten die Methoden nach Anweisungen umbenannt werden. In diesem Fall bspw. in getLengthOfText.

1

Spar dir das char-Array und die for-Schleifen.

return text.replace(" ","").length();

Problem: Satzzeichen sind dabei noch beinhaltet.

Idee:

return text.replaceAll("[^A-Za-z0-9_äÄöÖüÜß]","").length();

Das sollte die meisten Buchstaben und Zahlen beibehalten, während Satzzeichen rausfallen.

Sollten die Leerzeichen mitgezählt werden, dann wurden dir dazu ja bereits Antworten gegeben.

Im Hintergrund wird zwar dennoch mit Schleife und char-Array gearbeitet, aber wozu das Rad neu erfinden?