Leerzeichen zwischen jeden Buchstaben eines Strings einfügen

fhaslbs

Mitglied
Hallo erstmals. Ich bin ein 1.Lehrjahr Informatiker, und habe noch nicht viel Erfahrung mit Java. Ich bekam von meinem Chef den Auftrag, mit Java eine Anwendung zu entwicklen, die ein Textfile importiert, und dann zwischen jeden buchstaben der wörter im String ein beliebiges Zeichen einstzt.
hier der Code:
[Java]
import java.io.BufferedReader;//input eingabe
import java.io.File;//Die Klasse bietet eine große Anzahl von Methoden an, um Informationen über eine Datei oder ein Verzeichnis zu erhalten.
import java.io.FileReader;//Der FileReader liest aus Dateien entweder einzelne Zeichen, Strings oder Zeichenfelder. Wie beim Writer deklariert die Klasse Konstruktoren zur Annahme des Dateinamens. So zeigt folgendes Beispiel eine Anwendung der FileReader-Klasse.
import java.io.FileNotFoundException;//Öffnet die Datei zum Lesen über ein File-Objekt. Falls sie nicht verfügbar ist, löst der Konstruktor eine FileNotFoundException aus.
import java.io.FileWriter;
import java.io.IOException;//fehlerbehandlung
import java.io_OutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;

public class badwordfilter
{
public static void main(String[] args) throws IOException
{
File Textdatei = new File("c://Program Files/Java/eclipse/BWF_Liste.txt");//zu lesende Textdatei
StringBuffer contents = new StringBuffer();//Kontainer, in dem die Datei abgelegt werden soll
BufferedReader reader = null;//bedeutet, dass noch auf kein objekt vorhanden ist

try//versuche:
{
reader = new BufferedReader(new FileReader(Textdatei));
String text = null;//versuche so lange zu lesen bis


while ((text = reader.readLine()) != null)//alle linien gelesen sind.
{
contents.append(text)
.append(System.getProperty(
"line.separator"));
}
} catch (FileNotFoundException e)//Fange fehlermeldung auf
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally//schlussendlich
{
try//Versuche
{
if (reader != null)//wenn gelesenes nciht gleich null
{
reader.close();//schliesse reader
}
} catch (IOException e)
{
e.printStackTrace();
}
}

// erbebniss
System.out.println(contents.toString());







FileWriter writer;
File file;


// File anlegen
file = new File("d://bwf/test.txt");
try {
// new FileWriter(file ,true) - falls die Datei bereits existiert
// werden die Bytes an das Ende der Datei geschrieben

// new FileWriter(file) - falls die Datei bereits existiert
// wird diese überschrieben
writer = new FileWriter(file ,true);

// Text wird in den Stream geschrieben
writer.write(contents.toString());

// Platformunabhängiger Zeilenumbruch wird in den Stream geschrieben
writer.write(System.getProperty("line.separator"));


// Schreibt den Stream in die Datei
// Sollte immer am Ende ausgeführt werden, sodass der Stream
// leer ist und alles in der Datei steht.
// Text wird in den Stream geschrieben
writer.write(contents.toString());
writer.flush();

// Schließt den Stream
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
[/code]

der String wird schon mal in die Datei geschrieben, das sieht dann etwa so aus:

wort1
wort2
wort3
wort4

Die Wörter müssen schlussendlich Kommagetrennt sein, und eben mit beliebigen Zwischenzeichen "gefüllt" sein, also etwa so

w*o*r*t*1,
w*o*r*t*2,
w*o*r*t*3,

wie mache ich das? mit einer speziellen for-Schleife? Das Proglem ist, der Replace befehl bringt mir ja nichts, weil ja nichts ersetzt wird, sondern neu eingefügt wird ???:L
Und wie erkennt Mr. Java, dass jetzt ein neues Wort beginnt, und es zwischen den Wörtern keine Zeichen legen darf? denn die Wörter sind nicht alle gleich lang...
 

ARadauer

Top Contributor
also grundsätzlich so in die richtung, wie du das jetzt am besten mit leerzeichen zwischen den wörtern machst, kommt nochmal auf die genau aufgabenstellung an...
Java:
import java.io.IOException;

public class Test {

   public static void main(String[] args) throws IOException {
      String input = "Ich hab noch nie gesehen, dass jemand Imports kommentiert.";
      String output = "";
      for (int i = 0; i < input.length(); i++) {
         if(input.charAt(i) != ' '){
            output += input.charAt(i)+"*";
         }else{
            output += input.charAt(i);
         }
      }
      System.out.println(output);

   }
}
 

DerEisteeTrinker

Bekanntes Mitglied
ich würde das wie folgt machen:

Java:
public static void main(String[] args) {
	StringBuffer sb = new StringBuffer("Wir räumen die Kette mal von hinten auf.");
	
	for (int i = sb.length() - 1; i >= 0; i--) {
		if (sb.charAt(i) != ' ') {
			sb.insert(i, ' ');
		}
	}
	
	System.out.println(sb.toString());
}
 

Landei

Top Contributor
ARadauers Lösung ist OK, aber man sollte in ernsthaftem Code einen StringBuilder zum Zusammensetzen verwenden, und den erst am Ende in einen String umwandeln. Generell sollte man vermeiden, Strings im Inneren einer Schleife zusammenzufügen (sofern man nicht weiß, dass es wirklich nur ein paar wenige Durchläufe sind).

[Edit]
@Eisteetrinker: Hübsche Lösung!
 

fhaslbs

Mitglied
Vielen Dank euch beiden, nun funkt es ziemlich gut =)

ähnliche frage: wie bringe ich eine bestimmte zeichenkette vor und hinter jedes wort eines Strings?
mein beispiel
[java=42]
String eingelesenes =(contents.toString());
String vorstring="(?i)\b";
String nachstring="\b";
eingelesenes+=vorstring+eingelesenes+nachstring;
[/code]

das Ergebniss sollte schlussendlich so aussehen
(?i)bapfel\b
(?i)bbanane\b
usw...

es wird überhaupt nichts spannendes ausgedrücht, weder vor noch nach dem String, und schon gar nicht vor und nach den einzelnen Wörtern ;(

hat jemand Ideen?
 

Andi_CH

Top Contributor
Wo ist dein Problem??????

Java:
public class StringTest {
	private static String test(String pEingabe) {
		String eingelesenes = pEingabe;
		String vorstring="(?i)\b";
		String nachstring="\b";
		eingelesenes+=vorstring+eingelesenes+nachstring;
		return eingelesenes;
	}
	public static void main(String[] args) {
		System.out.println(test("Blabla"));
	}
}

output: Blabla(?i)Blabla

Du musst selbst wissen was \b machen soll - ich weiss es nicht, aber es überrascht mich nicht, dass das im output nicht richtig dargestellt wird .....
 

fhaslbs

Mitglied
das Problem ist, das der String aus mehreren unter einander stehenden Wörtern besteht, das input file sieht z.B so aus:

banane
apfel
kartoffeln

das zeugs, was auf dem Bildschirm erscheint ist irelevant, der Text soll(te) in ein textfile geschrieben werden, funktioniert sogar.
hier nochmals der ganze aktuelle code:

[JAVA=42]
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;

public class badwordfilter
{
public static void main(String[] args) throws IOException
{
File Textdatei = new File("C:/Users/User/Desktop/BWF_Liste.txt");
StringBuffer contents = new StringBuffer();
BufferedReader reader = null;
try
{
reader = new BufferedReader(new FileReader(Textdatei));
String text = null;

while ((text = reader.readLine()) != null)//
{
contents.append(text)
.append(System.getProperty(
"line.separator"));

}
} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
if (reader != null)
{
reader.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
System.out.println(contents.toString());
}
String eingelesenes =(contents.toString());
String vorstring="(?i)\b";
String nachstring="\b";
eingelesenes+=vorstring+eingelesenes+nachstring;

FileWriter writer;
File file;
file = new File("d://bwf/BWF_new.txt");
try {
writer = new FileWriter(file ,true);
writer.write(eingelesenes);
writer.flush();
writer.close();
}
catch (IOException e) {
e.printStackTrace();
}
System.out.println(contents.toString());
}
}


[/code]
 

Andi_CH

Top Contributor
das Problem ist, das der String aus mehreren unter einander stehenden Wörtern besteht, das input file sieht z.B so aus:

banane
apfel
kartoffeln

das zeugs, was auf dem Bildschirm erscheint ist irelevant, der Text soll(te) in ein textfile geschrieben werden, funktioniert sogar.

Grummel - mein Code ist nur dazu da zu beweisen, dass das was du machst schon mal richtig ist. Falls dein Problem an einem anderen Ort ist, hast du es vermutlich zu wenig genau beschrieben!
 

Andi_CH

Top Contributor
an welcher stelle genau? entschuldigung für die dumme frage, aber ich bin noch ein ziemlicher Anfänger.

[FRUSTMODE]
Warum meinen alle sie seien so ziemlich Anfänger und versuchen nicht mal den Code zu verstehen den sie als ihren eigenen hinstellen????
[/FRUSTMODE]
Ich bin auch ziemlicher Anfänger - ich programmiere Java erst seit Mai 2010.

Hast du keinen Debugger? Ich verwende den immer wenn ich ein Programm nicht verstehe.
 

fhaslbs

Mitglied
@andi_ch
danke für deine Hilfe, und kom runter^^ Glaubst du, ich würde Java programmieren, wenn ich es nicht lernen möchte?:)
ja ich verwende einen Debuger, und nein der Code ist nicht von mir, und ich verstehe ihn noch nicht richtig, was nicht heisst, dass ich ihn nicht verstehen möchte. habe ich irgend wo geschrieben, dass der Code mein eigener ist???

@Michael
Danke, das kommt der Sache schon näher.
 

Andi_CH

Top Contributor
Dann step mit dem Debugger durch - dann findest du doch sicher raus wo der Code rein muss.

Ich sags sehr direkt - Deine Art der Fragerei heisst IMHO übersetzt - gebt mir die Lösung dann lasse ich euch in Ruhe.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Leerzeichen zwischen zwei Zeichen im String entfernen Java Basics - Anfänger-Themen 19
C mehrere Leerzeichen zwischen Strings Java Basics - Anfänger-Themen 4
melaniemueller setCharAt Leerzeichen zusätzlich einfügen Java Basics - Anfänger-Themen 8
A 1 Leerzeichen durch zwei Leerzeichen ersetzen Java Basics - Anfänger-Themen 4
HolyFUT Input/Output Leerzeichen aus String entfernen - klappt nicht! Java Basics - Anfänger-Themen 13
T Leerzeichen im String entfernen Java Basics - Anfänger-Themen 6
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
M Warum werden character, die Leerzeichen sind, nicht korrekt verarbeitet? Java Basics - Anfänger-Themen 2
B String nach erstem Leerzeichen trennen Java Basics - Anfänger-Themen 7
O Methode über Leerzeichen Java Basics - Anfänger-Themen 13
D jsoup get class name mit leerzeichen Java Basics - Anfänger-Themen 7
O String Methode für längste Sequenz von Leerzeichen Java Basics - Anfänger-Themen 35
J am Anfang eines String ein Leerzeichen löschen Java Basics - Anfänger-Themen 6
J Leerzeichen im Pfad automatisch erkennen Java Basics - Anfänger-Themen 30
D Leerzeichen entfernen Java Basics - Anfänger-Themen 4
P Java Leerzeichen in der Ausgabe entfernen Java Basics - Anfänger-Themen 3
Phillip Leerzeichen nach Zahlen bei Ausgabe Java Basics - Anfänger-Themen 6
I Bei Umlauten und Leerzeichen im Pfad, wird Datei nicht gefunden Java Basics - Anfänger-Themen 5
M (Leerzeichen) zu einem gesuchten String Java Basics - Anfänger-Themen 4
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
P Leerzeichen in Pfad... Java Basics - Anfänger-Themen 17
T Leerzeichen zählen mit Rekursion Java Basics - Anfänger-Themen 17
H String mit Leerzeichen in Variablen zerlegen Java Basics - Anfänger-Themen 4
M String vergleichen - Leerzeichen Ignorieren? Java Basics - Anfänger-Themen 4
M nach Typenkonvertierung Leerzeichen ersetzen Java Basics - Anfänger-Themen 2
J Alle Leerzeichen aus String entfernen Java Basics - Anfänger-Themen 13
P int-Werte im String (mit Hilfe vom Leerzeichen) trennen? Java Basics - Anfänger-Themen 2
S Leerzeichen herausfiltern Java Basics - Anfänger-Themen 10
T Zeichen als Leerzeichen weitergegeben Java Basics - Anfänger-Themen 13
D Hilfe beim einlesen eines Strings mit Leerzeichen Java Basics - Anfänger-Themen 16
G Multiple Leerzeichen entfernen Java Basics - Anfänger-Themen 13
C Leerzeichen im char Array setzen Java Basics - Anfänger-Themen 33
C Stringeingabe: kein Satz wegen Leerzeichen möglich Java Basics - Anfänger-Themen 3
D Erste Schritte RandomAccessFile "Leerzeichen" löschen Java Basics - Anfänger-Themen 6
T Erste Schritte Eingelesenen Satz - Wörter und Leerzeichen getrennt in 2x Array's Java Basics - Anfänger-Themen 7
G Leerzeichen einfügen Java Basics - Anfänger-Themen 3
3 Leerzeichen erkennen Java Basics - Anfänger-Themen 3
D Wort nach Leerzeichen - String Java Basics - Anfänger-Themen 10
X nach split leerzeichen weg Java Basics - Anfänger-Themen 4
K Int Array mit "Leerzeichen" füllen Java Basics - Anfänger-Themen 2
D mehrere Leerzeichen durch 1 Leerzeichen ersetzen Java Basics - Anfänger-Themen 3
M property-Datei: key mit Leerzeichen? Java Basics - Anfänger-Themen 3
I Zeichen zählen ohne Leerzeichen Java Basics - Anfänger-Themen 3
A Leerzeichen bei Ausgabe? Java Basics - Anfänger-Themen 3
N java.util.Arrays.sort Warum sind Leerzeichen vor alphabetischen Zeichen sortiert? Java Basics - Anfänger-Themen 12
P Probleme mit Runtime.exec und Leerzeichen Java Basics - Anfänger-Themen 15
G String in Array einfügen, leerzeichen! Java Basics - Anfänger-Themen 2
S regular expression - bekomme leerzeichen nicht raus Java Basics - Anfänger-Themen 3
O Leerzeichen aus Java Basics - Anfänger-Themen 11
P Leerzeichen-Problem bei Verzeichnispfad Java Basics - Anfänger-Themen 7
O Leerzeichen im Pfad Java Basics - Anfänger-Themen 8
M wie auf ein feld mit leerzeichen in einem char array prüfen? Java Basics - Anfänger-Themen 4
B Woerter, Zeichen, Leerzeichen zaehlen - Problem Java Basics - Anfänger-Themen 3
G Leerzeichen in String einfügen Java Basics - Anfänger-Themen 1
H wie spreche ich durch leerzeichen im string neuen index an Java Basics - Anfänger-Themen 10
F Leerzeichen in Pfadangabe beim Befehl exec() Java Basics - Anfänger-Themen 5
G Split Operation: ein oder mehrere Leerzeichen Java Basics - Anfänger-Themen 7
padde479 Runtime.getRuntime.exec() Leerzeichen unterdrücken Java Basics - Anfänger-Themen 2
M Leerzeichen löschen Java Basics - Anfänger-Themen 2
F Leerzeichen in Integer Array speichern Java Basics - Anfänger-Themen 7
I String mit Leerzeichen einlesen Java Basics - Anfänger-Themen 3
D Abfrage auf Leerzeichen Java Basics - Anfänger-Themen 5
G Im Zeichenarray Leerzeichen invertieren Java Basics - Anfänger-Themen 5
G String mit next()-Methode einlesen - keine Leerzeichen! Java Basics - Anfänger-Themen 11
S Problem beim setzen von JAVA_HOME (Leerzeichen?) Java Basics - Anfänger-Themen 7
R Am Begin und Ende eines Strings die Leerzeichen löschen ? Java Basics - Anfänger-Themen 3
M Leerzeichen in Dateinamen ein Problem ? Java Basics - Anfänger-Themen 4
F Leerzeichen in einen String einfügen. Java Basics - Anfänger-Themen 15
D ausgabe verändern (statt zeilenumbruch leerzeichen) Java Basics - Anfänger-Themen 2
S Einen langen String beim Leerzeichen in zwei Strings zerlege Java Basics - Anfänger-Themen 3
S txt-Datei nach Leerzeichen Splitten lassen! Java Basics - Anfänger-Themen 3
S Leerzeichen replacen Java Basics - Anfänger-Themen 5
F Problem mit Zeichenkette nur aus Leerzeichen Java Basics - Anfänger-Themen 4
T String Leerzeichen wegschneiden Java Basics - Anfänger-Themen 2
L Leerzeichen erfragen Java Basics - Anfänger-Themen 4
L Steuerzeichen für Space (Leerzeichen)? Java Basics - Anfänger-Themen 3
J Dateipfad mit Leerzeichen Java Basics - Anfänger-Themen 10
C Leerzeichen aus String entfernen Java Basics - Anfänger-Themen 8
A replaceAll und Leerzeichen Java Basics - Anfänger-Themen 2
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 9
Distanz zwischen zwei Zeichenfolgen in einem String bestimmen Java Basics - Anfänger-Themen 5
S Unterschied zwischen Denkweisen Java Basics - Anfänger-Themen 13
O Klassen Zusammenspiel zwischen 2 Klassen Java Basics - Anfänger-Themen 1
Ras Unterschied zwischen parser xml and api xml Java Basics - Anfänger-Themen 7
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
S Längster Pfad zwischen zwei Vertices in einem Graph Java Basics - Anfänger-Themen 3
U Erste Schritte nextGaussian zwischen zwei Werten Java Basics - Anfänger-Themen 19
jhCDtGVjcZGcfzug Was ist der Unterschied zwischen diesen Quellcodes? Java Basics - Anfänger-Themen 3
rafi072001 Assoziation zwischen Musiker und Label Java Basics - Anfänger-Themen 1
I Best Practice Saubere Verbindung zwischen API und Business Layer mit DTO's Java Basics - Anfänger-Themen 2
A Parametar übergabe zwischen Methoden Java Basics - Anfänger-Themen 26
W User zwischen Optionen wählen lassen Java Basics - Anfänger-Themen 1
I Differenz zwischen LocalDateTime Java Basics - Anfänger-Themen 4
Leo_1789 Differenz ausrechnen zwischen denn idealgewicht und denn echten Gewicht Java Basics - Anfänger-Themen 7
E Wie gebe ich alle Daten zwischen zwei Zeitpunkten aus? Java Basics - Anfänger-Themen 2
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
C Kommunikation zwischen 2 Klassen Java Basics - Anfänger-Themen 3
marcooooo Separator zwischen allen Zeichen eines Strings einfügen Java Basics - Anfänger-Themen 29
NeoLexx Zuweisungskompatibilität zwischen Vererbungsbeziehungen (Polymorphie) Java Basics - Anfänger-Themen 18

Ähnliche Java Themen

Neue Themen


Oben