Prüfen ob Strings 2mal vorkommen

K

KauKasusK

Gast
hallo liebe freunde,

mein ziel ist es eine txt datei zu durchlaufen und Strings überprüfen ob sie genau 2 mal vorkommen,
kleiner 2 bzw größer 2 wäre ein fehler und sollte in einer extra datei protokolliert werden. habe noch kein codeansatz, weil ich ca. 0 ahnung habe wie ich diese überprüfung proggen soll..
um das zu veranschaulichen mach ich mal ne kleine skizze:

Datei.txt
======
Hans
Hans
Peter
Peter
Stefan
Andreas
Andreas
Andreas
=======

Stefan und Andeas wäre in diesem fall ein fehler und sollte in einer extra txt datei protokolliert werden.

danke an alle mitwirkenden.
 
G

Gast2

Gast
Irgendwo musst du eine Liste führen die dir sagen kann "Wort x kommt y vor". Am Ende schaust du dir dann die Liste an und prüfst bei welchen Wörtern y != 2 an.
Dafür könntest du beispielsweise eine Map<String, Integer> verwenden.
 

HimBromBeere

Top Contributor
Um das gleich fortzusetzen: in die Map kommt dann als Schlüssel der Name (also z.B. Hans) und als Wert die Häufigkeit, die du mit jedem Auftauchen in der Datei um eins hochzählst.

Lies eine Zeile ein, schaue, ob zu dem Namen ein Schlüsseleintrag vorhanden ist.
Falls ja: zähle Häufigkeit um eins hoch
falls nein: erstelle neuen Schlüssel und zähle dessen Häufigkeit um eins hoch
 
S

SlaterB

Gast
und um den Sack voll zu machen:
neben Liste (unperformant) und Map (Anzahlen zählen) könnte die treffendste Collection ein Set sein,
die kann genau nur und dafür dann ziemlich performant feststellen, ob ein Element schon vorhanden ist oder nicht,
HashSet etwa verwendet freilich intern eine HashMap, verdeckt diese nur
 
G

Gast2

Gast
Naja, mit nem Set könntest du aber nichts darüber aussagen ob nen Wort mehr als 2 mal vorkommt, was ja wieder nen Fehler wäre. Ich denke um ne Map Wort -> Anzahl kommt man nicht drumrum (wenn die Wörter nicht sortiert sind).
 
N

nillehammer

Gast
[OT]
Sacht mal SlaterB und EikeB, seid Ihr eigentlich verwandt (wg. selbem "Nachnamen") :D
[/OT]
 
S

SlaterB

Gast
achso, größer 2x, dachte es wäre genau Doppelte-Suche,

von Verwandschaft weiß ich nix ;)
(Achtung, wulffsche Ausweichantwort)
 
K

KauKasusK

Gast
im falle dass das wort genau 2 mal vorkommt soll nix passieren, nur wenn das wort >2 bzw <2 mal vorkommt dann soll das wort in ein fehlerprotokoll geschrieben werden.
 
S

SlaterB

Gast
zur Verdeutlichung:
mit 'genau Doppelte-Suche' meinte ich 'genau 1 mal vorkommt', nicht 'genau 2 mal vorkommt',
aber ergibt sich ja alles von selbst, bin dann auch für Map
 

xehpuk

Top Contributor
Wenn die Einträge schon so gruppiert sind wie im Beispiel, dann reichen auch schon ein String (Name) und ein boolean (zweimal gefunden) zur Prüfung aus.
 
K

KauKasusK

Gast
für einen der bisher keine erfahrungen mit Map, HashSet gemacht hat, muss ich mich erstmal einlesen.
ich danke euch allen, hoffe es klappt. ne string funktion wie repeat oder so wäre eigentlich auch nicht schlecht, naja ich seh mal was ich hinkrieg oder auch nicht. nochmals danke.
 

Marco13

Top Contributor
Soll sofort ein Fehler gemeldet werden, wenn einer erkannt wird? Ist die Liste sehr lang? Wie auch immer, mit der Map ist's am einfachsten....
 
K

KauKasusK

Gast
die liste ist etwas länger ja, wenn bei einem schleifendurchlauf ein fehler gefunden wurde soll dieser eingetragen werden und die schleife soll fortgesetzt werden.
 

Marco13

Top Contributor
Ja, ich dachte nur kurz, ob man sich da was trickreiches überlegen könnte, im Sinne eines "Paritätschecks":
Java:
Set<String> fehler = ...

for (String s : input)
{
    if (!fehler.contains(s)) fehler.add(s);
    else fehler.remove(s);
}
aber das würde nur zwischen gerader und ungerader Anzahl unterscheiden und auch nicht viel bringen. Also doch die Map ...
 

HimBromBeere

Top Contributor
moin, anfänger und null erfahrung mit 'map'
kein plan wie ich vorgehen soll.
Schonmal Google bemüht?

Eine Map ist eine Sammlung von Datensätzen (Collection), die durch Paare von (Schlüssel, Wert) gekennzeichnet sind.

Vertreter hiervon wäre z.B. eine HashMap, bei der jeder Schlüssel nur einmal vorkommen darf. Desweiteren gibt´s auch noch die TreeMap.

EDIT: Wenn das jetzt in die Art: "ich hab keine Ahnung, macht ihr das mal" ausarten soll, verschiebt das Thema am besten in die Jobbörse...
 

truesoul

Top Contributor
Bevor es hier noch ausartet.

Java ist auch eine Insel – 11.6 Assoziative Speicher HashMap und TreeMap

Java:
import java.util.HashMap;
import java.util.Map;


public class Test{

	public static void main(String[] args) {
	
		
		String array [] = {"Hans","Hans","Peter","Peter","Stefan","Andreas","Andreas","Andreas"};
		
		Map<String,Integer> map = new HashMap<String,Integer>();
		
		for(String key : array){
			if( map.get(key) == null ){
				map.put(key, 1);
			} else {
				map.put(key, map.get(key)+1);
			}
		}
		
		for(Map.Entry<String, Integer> c : map.entrySet()){
			if(c.getValue() != 2)
				writeFile(c.getKey());
		}
	}
	
	private static void writeFile(String name){
		// Füge Namen in der extra Datei ein
		System.out.println(name);
	}
}
 
K

KauKasusK

Gast
viele dank truesoul, und auch an alle anderen die sich bemüht haben. ihr macht eine gute arbeit.

liebe grüße
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
G Gültigkeit eines Strings auf ISO-LATIN-1 prüfen Java Basics - Anfänger-Themen 9
T Reihenfolge von Strings prüfen Java Basics - Anfänger-Themen 3
H strings auf gleichheit / ungleichheit prüfen wer kann helfen Java Basics - Anfänger-Themen 4
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Auf vollen Monat prüfen? Java Basics - Anfänger-Themen 22
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
B Sudoku prüfen Java Basics - Anfänger-Themen 13
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
X Array auf Leerstellen prüfen Java Basics - Anfänger-Themen 1
FelixN Prüfen, ob ein 2D-Array rechteckig ist Java Basics - Anfänger-Themen 42
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
B Prüfen, ob Country Code in Europa ist? Java Basics - Anfänger-Themen 24
L Prüfen ob Fax (Tif-Datei) vollständig angekommen ist Java Basics - Anfänger-Themen 15
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
B Prüfen, ob Datum2 der gleiche Tag ist wie Datum1 Java Basics - Anfänger-Themen 10
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
K Linux Speicherplatz mit Java prüfen Java Basics - Anfänger-Themen 4
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
G Compiler-Fehler Auf Anagramm prüfen Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Input/Output Prüfen wie oft etwas eingegeben wurde Java Basics - Anfänger-Themen 2
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
M Erste Schritte Java prüfen ob eine der Möglichkeiten erfüllt ist Java Basics - Anfänger-Themen 2
R Auf Nachkommastellen prüfen. Java Basics - Anfänger-Themen 2
P Argumente auf plausibilität prüfen... Java Basics - Anfänger-Themen 8
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
Tommy Nightmare Variable auf mehrere Ungleichheiten prüfen Java Basics - Anfänger-Themen 18
B String mit Emailadresse prüfen Java Basics - Anfänger-Themen 11
E 2D Arrays auf Ungleichheit prüfen! Java Basics - Anfänger-Themen 5
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
N Compiler-Fehler Iban prüfen Java Basics - Anfänger-Themen 7
J Prüfen ob Arrays nur mit einem Wert belegt sind Java Basics - Anfänger-Themen 3
M String prüfen Java Basics - Anfänger-Themen 7
E Prüfen ob Sammlung gesetzt wurde - Lebensmittelsammlung Java Basics - Anfänger-Themen 8
H Zufällig generierte Zahlen auf Eingabe prüfen Java Basics - Anfänger-Themen 5
S Prüfen ob bestimmter Ordner geöffnet ist (Windows XP) Java Basics - Anfänger-Themen 5
Ruvok Prüfen ob bestimmtest Element existiert im Array Java Basics - Anfänger-Themen 11
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
S String auf Pallindromeigenschaft prüfen Java Basics - Anfänger-Themen 15
AssELAss Datums-Objekt prüfen ob im gleichen Monat? Java Basics - Anfänger-Themen 5
Screen Input/Output Wie prüfen ob Stream1 in Stream2 enthalten ist (on-the-fly) ? Java Basics - Anfänger-Themen 5
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
I Prüfen ob Webseite existiert Java Basics - Anfänger-Themen 3
Z Inputs prüfen Java Basics - Anfänger-Themen 6
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K zwei Rechtecke auf Berührung prüfen Java Basics - Anfänger-Themen 2
G String auf Format prüfen Java Basics - Anfänger-Themen 3
J Eingabewert übergeben und prüfen von showInputDialog Java Basics - Anfänger-Themen 4
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
M Prüfen, ob Zeichen eine Zahl ist Java Basics - Anfänger-Themen 3
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
C Datentypen Prüfen of eine Zahl Quadratzahl ist Java Basics - Anfänger-Themen 2
K Eindimensionalen Array prüfen Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
S OOP long prüfen Java Basics - Anfänger-Themen 5
H Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird Java Basics - Anfänger-Themen 13
L Eine ArrayList auf gleiche Inhalte prüfen Java Basics - Anfänger-Themen 10
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
K HashMap auf leere Key-Value-Paare prüfen Java Basics - Anfänger-Themen 14
N Prüfen ob Objekt existiert Java Basics - Anfänger-Themen 6
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
A Prüfen ob Datei existiert Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben