string arraylist untersuchen frage

M

maXXX12345

Aktives Mitglied
Sehr geehrte Damen und Herren,

ich bitte sie, mir folgende Frage zu beantworten:

Ich möchte eine ArrayList<String> auf bestimmte Zeichenfolgen untersuchen und die Anzahl, wie oft diese vorkommen, zurückgeben.

Benutze dazu unten stehenden Code.

Jedoch bricht die Laufvaribale i viel zu früh ab.

Wieso?

(Anm.: Die Variable max ist normalerweise größer als 20000)

Ist in diesem Code nur ein kleine Fehler oder ist meine Methode
für mein Vorhaben grundsätzlich falsch?

Vielen dank für ihre Antworten im Vorraus!

Mit freundlichen Grüßen

-----------------------------------------------------------------
Java:
import java.util.*;

class zahelenlernen{

int zaehlen(ArrayList<String> quelltext) {

   int zaehlerderjpg = 0;

   int max = (quelltext.size()-2);

   for(int i = 0; i < max; i++){ 

   if(
quelltext.get(i+1) == "j"
      && quelltext.get(i+2) == "p" && 
quelltext.get(i+3) == "g") {

   zaehlerderjpg++;
   }
   }

   return zaehlerderjpg;

}

}
----------------------------------------------------------------
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
wie kann man einen vorzeitigen Abbruch einer Java-Schleife feststellen? das wäre ja mal interessant zu erfahren,
bei mir funktioniert der Code im Rahmen seiner Grenzen, jpg wird z.B. nur gefunden wenn im Quelltext direkt eingefügt,
besser wäre String-Vergleich mit equals

Leerzeilen zwischen jeder Zeile im Posting + Quellcode sowie fehlende Java-Tags sind übrigens störend,
kleingeschriebene Klassennamen auch nicht gut, besonder noch mit Tippfehlern..

Java:
public class Test {
    public static void main(String[] args)  {
        ArrayList<String> list = new ArrayList<String>();
        for (int i = 0; i < 10000; i++) {
            list.add("x");
        }
        list.add("j");
        list.add("p");
        list.add("g");
        System.out.println(new zahelenlernen().zaehlen(list));
    }
}


class zahelenlernen {

    int zaehlen(ArrayList<String> quelltext)   {
        int zaehlerderjpg = 0;
        int max = (quelltext.size() - 2);
        for (int i = 0; i < max; i++) {
            if (quelltext.get(i + 1) == "j" && quelltext.get(i + 2) == "p" && quelltext.get(i + 3) == "g")     {
                zaehlerderjpg++;
            }
        }
        return zaehlerderjpg;
    }
}
 
J

jpgbild

Gast
Vereinfachen wir lieber:

Java:
        char[] ca = "hallojpgundjpg!".toCharArray();

        int count = 0;

        for (int i = 0; i < ca.length - 2; i++) {
            if (ca[i] == 'j' && ca[i + 1] == 'p' && ca[i + 2] == 'g') {
                count++;
                i += 2; // für p + g nicht prüfen
            }
        }

        System.out.println("count: " + count);

Und warum so formell
 
J

jpgbild

Gast
Oder so (sehr kryptisch):

Java:
        char[] ca = "hallojpgundjpg!".toCharArray();
        char[] ca2 = "jpg".toCharArray();

        int count = 0;

        for (int i = 0; i < ca.length - ca2.length + 1; i++) {
            int j = -1;
            while (++j < ca2.length && ca[i + j] == ca2[j])
                ;
            if (j == ca2.length) {
                count++;
                i += ca2.length - 1;
            }
        }

        System.out.println("count: " + count);

Die Vorteile liegen auf der Hand und mit dem Post-Inkrementoperator spart man sich fünf Zeichen ({j=j})
 
S

Surras

Mitglied
den inhalt eines Strings könnte man doch auch mit String.contains("jpg"); überprüfen. So muss er nicht komplett identisch (*edit*) sein und er überprüft es. Sollte er das erste gefunden haben geht man mit String.IndexOf(); an die Stelle nach dem 'jpg' gefunden wurde und sucht ab da weiter. oder ist dies zu umständlich?
 
J

jpgbild

Gast
den inhalt eines Strings könnte man doch auch mit String.contains("jpg"); überprüfen. So muss er nicht komplett identisch (*edit*) sein und er überprüft es. Sollte er das erste gefunden haben geht man mit String.IndexOf(); an die Stelle nach dem 'jpg' gefunden wurde und sucht ab da weiter. oder ist dies zu umständlich?

klar, es gibt auch andere Mechanismen. Aber die Frage ist halt, inwieweit man was implementieren soll, auf API zurückgreifen soll oder was wodurch lernen soll.
Let me google that for you
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J ArrayList Name mit String erstellen Java Basics - Anfänger-Themen 8
BadBat ArrayList<String> sort by last word Java Basics - Anfänger-Themen 8
M ArrayList- größten String printen Java Basics - Anfänger-Themen 30
P Input/Output Arraylist nach String eines Objekts durchsuchen Java Basics - Anfänger-Themen 26
S String splitten und in ArrayList speichern Java Basics - Anfänger-Themen 4
N String ArrayList ohne Wiederholungen Java Basics - Anfänger-Themen 7
T String ArrayList Java Basics - Anfänger-Themen 7
B ArrayList<ArrayList<ArrayList<String>>> Java Basics - Anfänger-Themen 10
V Arraylist: Zählen welcher String am Häufigsten vorkommt Java Basics - Anfänger-Themen 5
S ArrayList<Byte> in String umwandeln Java Basics - Anfänger-Themen 5
L ArrayList als String ausgeben Java Basics - Anfänger-Themen 4
M ArrayList<String> alphabetisch sortieren Java Basics - Anfänger-Themen 5
R ArrayList<String> Komma oder Punkt "replacen" Java Basics - Anfänger-Themen 5
F ArrayList<ArrayList<String>> to String[][] umwandeln? Java Basics - Anfänger-Themen 9
Binary.Coder List bzw. ArrayList als String ausgeben Java Basics - Anfänger-Themen 2
M Datentypen java.util.Arrays$ArrayList cannot be cast to [Ljava.lang.String; Java Basics - Anfänger-Themen 11
T String aus einer ArrayList suchen Java Basics - Anfänger-Themen 7
StrikeTom Prüfen ob ArrayList string enhält! Wie??? Java Basics - Anfänger-Themen 5
2 Datentypen Kurze Schreibform bei ArrayList (Vs String Array) Java Basics - Anfänger-Themen 6
vandread Kann in einer String-ArrayList keine Zeichen anhängen Java Basics - Anfänger-Themen 5
A Datentypen Typ der Arraylist in String umwandeln Java Basics - Anfänger-Themen 23
X ArrayList to String[][] für JTable Java Basics - Anfänger-Themen 9
M Längster String in Arraylist Java Basics - Anfänger-Themen 2
D ArrayList<String> to Combobox Java Basics - Anfänger-Themen 7
M ArrayList, String Array und IndexOutOfBoundsException Java Basics - Anfänger-Themen 2
N Map<String, HashSet<String>> Umwandeln in Map<String, ArrayList<String>> Java Basics - Anfänger-Themen 14
Z Kann man String[] in einer ArrayList verwenden? Java Basics - Anfänger-Themen 3
C Arraylist mit string array oder hashmap oder objekt? Java Basics - Anfänger-Themen 5
G Arraylist<String> füllen Java Basics - Anfänger-Themen 3
H ArrayList<String> und ArrayList<String[]> Java Basics - Anfänger-Themen 12
G ArrayList<String> durchsuchen Java Basics - Anfänger-Themen 8
C Long -> String -> ArrayList adden -> Exception Java Basics - Anfänger-Themen 4
G String auslesen bzw. arraylist speichern und laden Java Basics - Anfänger-Themen 14
N Ausgabe des Inhalts eines String Arrays in einer ArrayList Java Basics - Anfänger-Themen 4
F ArrayList zu String[] machen Java Basics - Anfänger-Themen 2
U casting: ArrayList to String[] Java Basics - Anfänger-Themen 10
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
Vamecruft Compiler-Fehler public static void zu static String ändern Java Basics - Anfänger-Themen 2
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
O Datentypen String teilen Java Basics - Anfänger-Themen 5
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
B String to int Java Basics - Anfänger-Themen 11
D String value change listener Java Basics - Anfänger-Themen 2
I Wo am besten eine String Konstante initialisieren? Java Basics - Anfänger-Themen 5
F JMenuItem Kann nicht nach einem String benannt werden... Java Basics - Anfänger-Themen 11
B String to Float Java Basics - Anfänger-Themen 27
B Map<String, FilterMeta, wie Wert bekommen? Java Basics - Anfänger-Themen 4
Dimax stream in string[] speichern Java Basics - Anfänger-Themen 6
Dimax String Probleme Java Basics - Anfänger-Themen 12
H Wie wird ein String intern gespeichert? Java Basics - Anfänger-Themen 10
C String auf Dualzahl überprüfen Java Basics - Anfänger-Themen 5
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
A final String verrechnen Java Basics - Anfänger-Themen 2
N String N-Gramme mit Stream erstellen Java Basics - Anfänger-Themen 7
A Implementierung von String toString methode() Java Basics - Anfänger-Themen 4
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
Z Methode zum Heraufinden von Anagrammen ohne Java API, Ausnahme String Java Basics - Anfänger-Themen 14
Dimax Erste Schritte String replace alle Zeichen Java Basics - Anfänger-Themen 10
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
J Characters als String zusammenfassen Java Basics - Anfänger-Themen 3
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F String auf E-Mail kürzen Java Basics - Anfänger-Themen 11
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
S String index out of range Java Basics - Anfänger-Themen 11
L String in Do-While-Schleife Abbruchkriterium Java Basics - Anfänger-Themen 1
V int zu Integer und String Java Basics - Anfänger-Themen 6
X Erste Schritte String: Alle doppelten Leerzeilen entfernen Java Basics - Anfänger-Themen 21
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
P Datenspeichern im String Java Basics - Anfänger-Themen 5
J String wird in GUI falsch ausgegeben Java Basics - Anfänger-Themen 10
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
S Ersetzen eines Asterix in einem String Java Basics - Anfänger-Themen 8
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
R String vergleichen Java Basics - Anfänger-Themen 59
L String zerlegen & elemente hinzufügen Java Basics - Anfänger-Themen 5
FelixN RegEx aus einem String als String-Array zurückgeben Java Basics - Anfänger-Themen 8
Curtis_MC 2dimensionales Array als String ausgeben Java Basics - Anfänger-Themen 2
J Zeichen im String zählen Java Basics - Anfänger-Themen 3
J erstes Vorkommen eines Chars aus einem String entfernen Java Basics - Anfänger-Themen 3
S String richtig formatieren Java Basics - Anfänger-Themen 2
M String außerhalb der main-Methode Java Basics - Anfänger-Themen 4
N Fehler bei string Attribut! Java Basics - Anfänger-Themen 18
I String Repraesentation eines Objekts Java Basics - Anfänger-Themen 1
S Gesamten String in einer Zeile ausgeben Java Basics - Anfänger-Themen 2
J Umwandlung String zu ASCII-Wert und anders Java Basics - Anfänger-Themen 17
L String als ungültig deklarieren Java Basics - Anfänger-Themen 2
I char Array to String Java Basics - Anfänger-Themen 3
I converting boolean Array to String Array Java Basics - Anfänger-Themen 10
S String split Java Basics - Anfänger-Themen 12
B String vergleich Java Basics - Anfänger-Themen 3
C Java String Methode Java Basics - Anfänger-Themen 6
G String mit mehreren Attributen aufteilen Java Basics - Anfänger-Themen 6
Dimax String Split Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Anzeige

Neue Themen


Oben