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.

(String)matches Funktion zu langsam

Empfohlene Antworten

Veröffentlicht

hi,

ich habe volgendes Problem.

Ich lese eine Textdatei (500MB!!!) zeilenweise ein

und will nun diese Zeile, wenn sie einen Bestimten String enthält in eine andere Textdatei schreiben. Im moment mache ich dies mit der matches Funktion der String Klasse. Das dauert aber ewig, gibt es da eine schnellere alternative?

mfg

trc

Wie sieht deine Suche denn aus?

Gruß Jaraz

hi,

im mom so:


if (sIn.indexOf("I0128") != -1 || sIn.indexOf("I0129") != -1 ||

                        sIn.indexOf("I0130") != -1 || sIn.indexOf("I0131") != -1 ||

                        sIn.indexOf("I0132") != -1 || sIn.indexOf("E0005") != -1 ||

                        sIn.indexOf("PR")    != -1) {

                    }

                    else{

                        continue;

                    }

also sIn ist die eingelesene Zeile,

indexOf ist wesentlich schneller gewesen als matches,

könnte aber noch schneller gehn.

Original geschrieben von trc

indexOf ist wesentlich schneller gewesen als matches

Ja, sowas hatte ich mir schon gedacht, deswegen meine Frage.

Nun ja, viel schneller als indexOf wird es wohl nicht gehen.

Man könnte das ganze höchstens noch als Stream einlesen und dann selber nach den bytes suchen, aber ich glaube nicht das das signifkant schneller sein könnte.

Gruß Jaraz

Ich kann da jetzt nur mutmaßen, aber evtl. wäre eine native Methode eine Lösungsmöglichkeit.

bist Du sicher, dass das Geschwindigkeitsproblem am String-Matching liegt - oder vielleicht doch am Auslesen der Datei? Wenn Du JDK1.4+ benutzt könntest Du mal Memory-mapped files ausprobieren.

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.