Wie Programmiere ich einen Zähler?
Hallo! Ich würde gerne einen Zähler programmieren, welcher Zählt wie viele Buchstaben der Text hat (den ihr auf Datei: "Aufgabe1_main" seht), doch ich weiß nicht wie. Es sollte in Bezug zu der Datei:"Aufgabe1" haben. Würde mich auf eine Hilfe freuen.
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
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());
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.
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?