Char-Array nach einem Wort durchsuchen!

F

Florian123

Gast
Hallo Zusammen

Ich habe eine Datei "in.txt" die hat 3 Zeilen:

Das ist die erste ist Zeile
Das ist die zweite Zeile
Das ist dritte Zeile

Zwischen den Wörtern hatts verschieden viele Leerzeichen.
Ich kann die Datie einlesen, Array mit der Grösse 3 jede Zeile einlesen.
Dann übergebe ich diese 3 Zeilen, Zeile für Zeile in eine Funktion die mir diese Zeilen durchschauen soll und nach einem bestimmten Wort durchsuchen soll und am Schluss in eine Variable speichern, wievielmal dieses Wort in dieser Zeile vorgekommen ist.

Java:
	/************************************************************************
	* FUNCTION: SearchPattern												*
	*************************************************************************
	* Sucht nach dem angegebenen Pattern und gibt den Zähler aus.			*
	************************************************************************/
	public static String SearchPattern (String input, String pattern){
		
		int i = 0;
		int j = 0;
		int patterncount = 0; 
		int patternexist = 0;
		String patterncount_string = "";
			
		input = input.trim();
		
		char [] inputchararray = input.toCharArray();
		char [] patternchararray = pattern.toCharArray();
			
		for (i = 0; i < inputchararray.length; i++){
			
			if (inputchararray[i] == patternchararray[0]){
				
				for (j = 0; j < patternchararray.length; j++){
					
					if (inputchararray[i+j] == patternchararray[j]){
						
						patterncount++;
						System.out.println("ok");
					}
					
				}
				
				if (patterncount == patternchararray.length){
					
					patternexist++;
				}
				
			}

		}
		
		System.out.print(patternexist);
		
		return (patterncount_string.valueOf(patternexist));
		
				
	}//SearchPattern

Nun irgendwie funktioniert das ganze noch nicht mit den Schleifen.

Zuerst mach ich aus den Strings CharArrays.

Die Funktion überprüft dann, ob das erste Zeichen des gesuchten Wortes im input (derZeile) vorhanden ist, sobald das erste Zeichen vorhanden ist geht er in eine FOR Schleife bei welcher er nach den weiteren folgenden Zeichen des gesuchten Wortes sucht. Immer wenn ein weiterer Buchstabe gefunden wurde zählt er den "patterncounter" hoch wenn dieser dann in der IF genau gleich gross ist wie das CharArray des gesuchten Wortes, dann ist es das Wort und er zählt "patternexist" eines hoch. Das heisst OK es besteht nun einmal. Er sollte immer so weiter durchgehen und jedesmal wenn er das Wort identifiziert hat eins hochzählen.

Dies dann mit jeder der 3 Zeilen die übergebe ich aber separat.

Gruss
 

chri

Mitglied
[JAVA=25]
inputchararray[i+j]
[/code]
Es wird auf i+j zugegriffen, d.h es muss vorher geprüft werden ob es im gültigen bereich liegt.


[JAVA=27]
patterncount++;
[/code]
patterncount wird zwar hochgezählt aber nirgends zurückgesetzt.
 
F

Florian123

Gast
Ok vielen Dank das mit dem zurücksetzen krieg ich hin, das mit dem Prüfen des gültigen Bereichs wie würdest du das anstellen?!

Grüsse
 

madboy

Top Contributor
Wenn nicht mit char[] gearbeitet werden muss, könntest du dir die Sache sehr vereinfachen:
Java:
String[] split = input.split("\\s+");
for(String s : split)
{
  if(s.equals(pattern))
  {
    patternexist++;
  }
}
 
F

Florian123

Gast
Wenn nicht mit char[] gearbeitet werden muss, könntest du dir die Sache sehr vereinfachen:
Java:
String[] split = input.split("\\s+");
for(String s : split)
{
  if(s.equals(pattern))
  {
    patternexist++;
  }
}

Können Sie mir erklären, was dies genau macht?!

Gruss
 

madboy

Top Contributor
Erstens darfst du mich gern duzen :)
und zweitens zählt der Codeschnipsel alle Vorkommen von pattern in input.

Java:
String[] split = input.split("\\s+"); //trennt input an Leerzeichen auf. "AB C" => {AB},{C}
Der Rest sollte eigentlich klar sein.
 
F

Florian123

Gast
Erstens darfst du mich gern duzen :)
und zweitens zählt der Codeschnipsel alle Vorkommen von pattern in input.

Java:
String[] split = input.split("\\s+"); //trennt input an Leerzeichen auf. "AB C" => {AB},{C}
Der Rest sollte eigentlich klar sein.

Gut dann schon mal vielen Dank!
 
F

Florian123

Gast
Ich habe noch eine 2te Aufgabe ich muss alle Leerzeichen löschen bis auf eines zwischen jedem Wort.
Habe das schon codiert aber geht das dann auch auf diese Weise einfacher wie du sie machst? und wie genau?

Java:
/************************************************************************
	* FUNCTION: DelSpaces													*
	*************************************************************************
	* Löscht die unnötigen Leerzeichen zwischen den Wörtern.				*
	************************************************************************/
	public static String DelSpaces(String input){
		
		int i = 0;
			
		input = input.trim();
		
		char [] chararray = input.toCharArray ();
		char [] chararray_new = new char[chararray.length];
			
		for (i = 0; i < chararray.length; i++){
			
			if (chararray[i] != ' ' || chararray[i+1] != ' '){
				
				chararray_new[i] = chararray[i];
					
				System.out.print(chararray_new[i]);
				
            }

		}
	
		//Variante 1: Chararray zurück in String
		//String output_str = new String(chararray_new);
					
		//Variante 1: Chararray zurück in String mit einer FOR Schleife abgefüllt
		String output_str = "";
		for (i = 0; i < chararray_new.length; i++){
			
			output_str = output_str + chararray_new[i];
			
		}

		return (output_str);
		
	}//DelSpaces
 

madboy

Top Contributor
Funktioniert bei mir...
Java:
public static void main(String[] args) {
      String input = "Das ist die erste ist Zeile";
      String pattern = "ist";
      int patternexist = 0;
      
      String[] split = input.split("\\s+");
      for(String s : split)
      {
        if(s.equals(pattern))
        {
          patternexist++;
        }
      }
      
      System.out.println(patternexist);
   }

Zur zweiten Aufgabe: ja, es geht einfacher. Diesmal aber keine Lösung sondern zwei Seiten zum Lesen.
String (Java 2 Platform SE v1.4.2)
Pattern (Java 2 Platform SE v1.4.2)
 
F

Florian123

Gast
Ich habe noch eine 2te Aufgabe ich muss alle Leerzeichen löschen bis auf eines zwischen jedem Wort.
Habe das schon codiert aber geht das dann auch auf diese Weise einfacher wie du sie machst? und wie genau?

Java:
/************************************************************************
	* FUNCTION: DelSpaces													*
	*************************************************************************
	* Löscht die unnötigen Leerzeichen zwischen den Wörtern.				*
	************************************************************************/
	public static String DelSpaces(String input){
		
		int i = 0;
			
		input = input.trim();
		
		char [] chararray = input.toCharArray ();
		char [] chararray_new = new char[chararray.length];
			
		for (i = 0; i < chararray.length; i++){
			
			if (chararray[i] != ' ' || chararray[i+1] != ' '){
				
				chararray_new[i] = chararray[i];
					
				System.out.print(chararray_new[i]);
				
            }

		}
	
		//Variante 1: Chararray zurück in String
		//String output_str = new String(chararray_new);
					
		//Variante 1: Chararray zurück in String mit einer FOR Schleife abgefüllt
		String output_str = "";
		for (i = 0; i < chararray_new.length; i++){
			
			output_str = output_str + chararray_new[i];
			
		}

		return (output_str);
		
	}//DelSpaces

Bei dem Leerzeichen löschen funktioniert meine Lösung grundsätzlich, doch wenn ich aus dem CharArray wieder ein String mache um es zurückzugeben ins Main, dann konvertiert er das ganz komisch in meinem Editor (Sc) sieht das dann so aus:

http://img509.imageshack.us/img509/8473/chararraytostring.jpg

Diese 3 komisch aber eigentlich richtig formatierten Zeilen kann er dann nicht richtig splitten und nach ist durchsuchen...

Gruss
 

madboy

Top Contributor
hier solltest du erst prüfen, ob
Code:
chararray_new[i]
null ist und nur dann den Wert zu
Code:
output_str
hinzufügen wenn das nicht der Fall ist.
Java:
        for (i = 0; i < chararray_new.length; i++){
            
            output_str = output_str + chararray_new[i];
            
        }
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
JG12111989 char-Array in int-Array umwandeln Allgemeine Java-Themen 27
C char und char-Array als parameter übergeben Allgemeine Java-Themen 6
J char-Array löschen Allgemeine Java-Themen 5
T JNI String/char-Array Allgemeine Java-Themen 8
R char aus String entfernen Allgemeine Java-Themen 10
Thallius Char +1 wird int? Allgemeine Java-Themen 7
MiMa Illegal char im Dateinamen Allgemeine Java-Themen 14
K Eingabe mit Char vergleichen klappt nicht! Allgemeine Java-Themen 2
J char Allgemeine Java-Themen 3
Thallius Merkwürdiges StringBuilder verhalten (Char Encoding) Allgemeine Java-Themen 6
R Char cannot be derefenrenced? Allgemeine Java-Themen 14
R Bibliothek für Darstellung von char auf 5x7 Dot-Matrix Allgemeine Java-Themen 2
S Char-index aller Buchstaben..? Allgemeine Java-Themen 3
S Klassen Zuorgnung Object-char Allgemeine Java-Themen 2
R Beste Methode: char[] c = new String(b, CHARSET).toCharArray() ? Allgemeine Java-Themen 2
Kr0e Synchronisieren: boolean,byte,char ? Allgemeine Java-Themen 2
E Short in Char? Allgemeine Java-Themen 4
H Vector<Character> zu char[] castern Allgemeine Java-Themen 2
M String[] zu Char[][] mit von toCharArray() Allgemeine Java-Themen 5
G Hex 2 char Allgemeine Java-Themen 2
M BufferedReader.read(char[] cbuf) liefert falsche Werte? Allgemeine Java-Themen 4
T Prüfen, ob Char ein Quantifier ist Allgemeine Java-Themen 6
H int in char umwandeln Allgemeine Java-Themen 7
N problem mit char Allgemeine Java-Themen 6
N Mal wieder char-encoding Probleme Allgemeine Java-Themen 5
T Frage zu char in verbindung mit int Allgemeine Java-Themen 4
B VK_? << durch char rausbekommen Allgemeine Java-Themen 8
M Class.forName und char Allgemeine Java-Themen 10
G Char-zufällig-generieren Allgemeine Java-Themen 11
T MessageDigest von einem char[] berechnen Allgemeine Java-Themen 7
Z Zeichen/char in einer Datei löschen Allgemeine Java-Themen 6
M wie wird aus char eine string kette? Allgemeine Java-Themen 4
A char in String umwandeln Allgemeine Java-Themen 3
L ein char in einem string ersetzen? Allgemeine Java-Themen 5
N char.At gibt Zeichenkette aus. aber leider 2x Allgemeine Java-Themen 10
G Wandeln von Char Wert in Zeichen? Allgemeine Java-Themen 2
U Unicode char kyrillisch Allgemeine Java-Themen 10
C String und char[] / String[] und Vector Allgemeine Java-Themen 21
L char-Zeichen per Konsole einlesen Allgemeine Java-Themen 4
N byte zu Char Allgemeine Java-Themen 1
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 5
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4

Ähnliche Java Themen

Neue Themen


Oben