Zeilenumbruch mit Scanner erkennen

S

Sashgah

Mitglied
Guten Morgen zusammen, ich wollte ein Programm schreiben, womit man eine Eingabe mittels des Scanners in einer Zeile mit maximal einer Lücke und keinem Umbruch wiedergeben kann. Dabei habe ich das Problem, dass ich keinen Zeilenumbruch erkennen kann, was dazu führt, dass ich nach '//' nichts mehr wiedergebe. (Das Programm soll die Kommentarfunktionen nutzen können - '/*', '*/' und '//'.)

import java.util.Scanner;

public class Eingabe {

public static String filter(String start, String stop, String skip){

Scanner sc = new Scanner(System.in);

String eingabe = "";
String n = "";
boolean tfstart = false;
boolean tfskip = false;

while(sc.hasNext()){
n = sc.next();
if(n.equals(start) || tfstart == true){
tfstart = true;
if(n.equals(stop))
tfstart = false;
}
else if(n.equals(skip) || tfskip == true){
tfskip = true;
if(n.equals("\n")) // Ich muss hier prüfen können ob ein Zeilenumbruch
tfskip = false; // "eingegeben" wurde
}
else
eingabe += n + " ";
}
return eingabe;
}
public static void main(String [] args){
System.out.println(filter("/*","*/","//"));
}
}

Aus:
/*
* Programm: gibt "Hi!" aus
*/
public class Hi {
public static void main(String[] args) {
// Ausgabe der Nachricht
System.out.println("Hi!");
}
}
soll also:
public class Hi { public static void main(String[] args) { System.out.println("Hi!"); } }
werden.
 
S

Sashgah

Mitglied
Das ist schade, gibt es denn eine andere Möglichkeit mein skip zu realisieren?
Danke für die schnelle Antwort. :)
 
truesoul

truesoul

Top Contributor
Ist dein Skip nicht schon "//"?
Willst du dein Programm nur in Eclipse verwenden?
 
S

Sashgah

Mitglied
Mein skip soll '//' realisieren können, also alles was nach '//' kommt ignorieren und in der nächsten Zeile wieder normal lesen. Stand jetzt wird alles was nach '//' kommt ignoriert.
 
truesoul

truesoul

Top Contributor
Hmmm.
Ich bin ganz ehrlich, ich verstehe nicht genau was du meinst.

Stand jetzt wird alles was nach '//' kommt ignoriert.

Wenn "Dies ist ein Text // und das darf nicht mehr ausgegeben werden" darf nur grün ausgegeben werden?
Und die nächste Eingabe kommt soll genau so verfahren werden?

Grüße
 
S

Sashgah

Mitglied
Ja, halt wie bei dem normalen Kommentar, aber bei mir ignoriert der nicht nur die restliche Zeile, sondern den kompletten Rest.

ausgeben // nicht mehr ausgeben
ausgeben // nicht mehr ausgeben

Bei mir ist es aber leider:
ausgeben // nicht mehr ausgeben
nicht mehr ausgeben // nicht mehr ausgeben
 
truesoul

truesoul

Top Contributor
Java:
Scanner s = new Scanner(System.in);

while (s.hasNext()) {
    String text = s.nextLine();

    int indexOf = text.indexOf("//");

    if (indexOf > 0) {
        System.out.println(text.substring(0, indexOf));
    } else {
        System.out.println(text);
    }

}

Du musst nextLine() verwenden
 
S

Sashgah

Mitglied
Danke, das war der entscheidende Tip. :)
Nun klappt alles.

import java.util.Scanner;

public class Eingabe {

public static void filter(String start, String stop, String skip){

Scanner sc = new Scanner(System.in);

String eingabe = "";
boolean tfstart = false;
boolean tfskip = false;
String text = "";
int indexOfStart = 0;
int indexOfStop = 0;
int indexOfSkip = 0;
String tmp = "";
int count = 0;

while(sc.hasNextLine()){

text = sc.nextLine();
indexOfStart = text.indexOf(start);
indexOfStop = text.indexOf(stop);
indexOfSkip = text.indexOf(skip);

if(text.contains(start) && text.contains(stop) && indexOfSkip >= indexOfStop){
eingabe += text.substring(0, indexOfStart);
eingabe += text.substring(indexOfStop + stop.length(), indexOfSkip);
}
else if(text.contains(start) && text.contains(stop)){
eingabe += text.substring(0, indexOfStart);
eingabe += text.substring(indexOfStop + stop.length(), text.length());
}
else if(text.contains(start)){
eingabe += text.substring(0, indexOfStart);
tfstart = true;
}
else if(text.contains(stop) && tfstart == true){
eingabe += text.substring(indexOfStop + stop.length(), text.length());
tfstart = false;
}
else if(tfstart == true)
continue;
else if(indexOfSkip >= 0)
eingabe += text.substring(0, indexOfSkip);
else if(text.equals(""))
continue;
else
eingabe += text + " ";
}

for (int i = 1; i <= eingabe.length(); i++){
tmp += eingabe.substring(i - 1, i);
if(eingabe.substring(i - 1, i).equals(" ")){
count++;
if(count == 2){
tmp = tmp.substring(0, tmp.length() - 1);
count = 1;
}
}
else if(count == 1 && !eingabe.substring(i - 1, i).equals(" "))
count = 0;
else
continue;
}
System.out.println(tmp);
}
}
 
Bible Man

Bible Man

Mitglied
Hier teile ich meine etwas kürzere Version.

Eingabe:
import java.util.Scanner;
import java.io.PrintStream;
public class Eingabe {
  public static int filter(Scanner sc, PrintStream ps,
      String start, String stop, String skip) {
    String zeile = "";
    String wort = "";
    Scanner scWort;
    int c = 0;
    boolean write = true;
    while (sc.hasNext()) {
      // Die Eingabe zeilenweise einlesen
      zeile = sc.nextLine();
      scWort = new Scanner(zeile);
      // Die Zeilen wortweise einlesen
      while (scWort.hasNext()) {
        wort = scWort.next();
        // Bei start wird "write" verboten
        if (wort.equals(start)) {
          write = false;
        }
        // Bei skip wird, falls "write" erlaubt ist, die ganze Zeile verworfen
        if (write && wort.equals(skip)) {
          break;
        }
        // Das Wort wird nur gespeichert, wenn "write" erlaubt ist
        if (write) {
          ps.append(wort + " ");
          ++c;
        }
        // Bei stop wird "write" wieder erlaubt
        if (wort.equals(stop)) {
          write = true;
        }
      }
      scWort.close();
    }
    ps.append("\n");
    return c;
  }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
M Zeilenumbruch ab der 10. Zahl Java Basics - Anfänger-Themen 11
C Stringbuffer auf Zeilenumbruch überprüfen Java Basics - Anfänger-Themen 14
F StringBuilder: Zeilenumbruch nach x Zeichen ohne Worttrennung Java Basics - Anfänger-Themen 1
C Zeilenumbruch für langes Strings Java Basics - Anfänger-Themen 2
I Zeilenumbruch im mailto-body Java Basics - Anfänger-Themen 5
D Zeilenumbruch- .txt-Ausgabedatei Java Basics - Anfänger-Themen 10
AssELAss Xml nur nach End-Tag Zeilenumbruch?? Java Basics - Anfänger-Themen 7
A Zeilenumbruch im Code Java Basics - Anfänger-Themen 5
E Zeilenumbruch!? Java Basics - Anfänger-Themen 3
A Zeilenumbruch im Jlabel Java Basics - Anfänger-Themen 11
M ArrayList || Bei Ausgabe nach jedem 10. Eintrag Zeilenumbruch Java Basics - Anfänger-Themen 7
M Zeilenumbruch in JLabel Java Basics - Anfänger-Themen 51
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
B Zeilenumbruch (zweidim. Matrix) Java Basics - Anfänger-Themen 2
N Denkanstoß Zeilenumbruch Java Basics - Anfänger-Themen 9
M Zeilenumbruch JTextPane Java Basics - Anfänger-Themen 2
C jTable in .txt - versteckter Zeilenumbruch? Java Basics - Anfänger-Themen 6
T Datentypen Zeilenumbruch im String (2-dimensionales array) Java Basics - Anfänger-Themen 4
D Zeilenumbruch für XMl File Java Basics - Anfänger-Themen 3
C Zeilenumbruch verhindern / Clrscr ? Java Basics - Anfänger-Themen 3
T System.out.printf Zeilenumbruch nach x Stellen Java Basics - Anfänger-Themen 4
A Abfrage Zeilenumbruch+.+Zeilenumbruch Java Basics - Anfänger-Themen 17
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
O TxT Zeilenumbruch Java Basics - Anfänger-Themen 4
E Zeilenumbruch von String schneiden Java Basics - Anfänger-Themen 13
E Zeilenumbruch in JButton mit Variable Java Basics - Anfänger-Themen 2
M Zeilenumbruch nach x Zeichen Java Basics - Anfänger-Themen 8
C textfield zeilenumbruch Java Basics - Anfänger-Themen 2
chik Zeilenumbruch in einem JLabel Java Basics - Anfänger-Themen 6
M "spezieller" Zeilenumbruch beim Kopieren Java Basics - Anfänger-Themen 3
S Zeilenumbruch awt.textarea Java Basics - Anfänger-Themen 16
M BufferedReader.readline() Unix/Windows Zeilenumbruch Java Basics - Anfänger-Themen 4
J Zeilenumbruch in Java Java Basics - Anfänger-Themen 2
J Zeilenumbruch in Java zwischen zwei Strings Java Basics - Anfänger-Themen 6
G Problem mit Zeichen Zeilenumbruch sieht aus wie(Eckige Null) Java Basics - Anfänger-Themen 4
V Zeilenumbruch bei der Eingabe verhindern Java Basics - Anfänger-Themen 6
W Text mit Zeilenumbruch zeichnen? Java Basics - Anfänger-Themen 5
S Weicher Zeilenumbruch? Java Basics - Anfänger-Themen 2
M Konsolenausgabe ohne Zeilenumbruch Java Basics - Anfänger-Themen 3
G Zeilenumbruch in einem String Java Basics - Anfänger-Themen 21
0 Zeilenumbruch funktioniert nicht Java Basics - Anfänger-Themen 4
N automatischer Zeilenumbruch Java Basics - Anfänger-Themen 3
N zeilenumbruch einfügen Java Basics - Anfänger-Themen 3
B Char Feld -> "Zeilenumbruch" Java Basics - Anfänger-Themen 5
M Am Ende eines Strings den Zeilenumbruch entfernen Java Basics - Anfänger-Themen 1
K Zeilenumbruch entfernen aus datei ?!?!? Java Basics - Anfänger-Themen 18
R Zeilenumbruch in einer Datei Java Basics - Anfänger-Themen 8
M sting komplett bearbeiten und nicht nach zeilenumbruch ende Java Basics - Anfänger-Themen 3
G Zeilenumbruch Java Basics - Anfänger-Themen 20
M JLabel - Zeilenumbruch Java Basics - Anfänger-Themen 2
G Automatischer Zeilenumbruch bei einer TextArea Java Basics - Anfänger-Themen 16
G Zeilenumbruch in String variable Java Basics - Anfänger-Themen 4
F Zeilenumbruch Java Basics - Anfänger-Themen 9
L Plattformunabhängiger Zeilenumbruch Java Basics - Anfänger-Themen 2
G Zeilenumbruch aus String entfernen ? Java Basics - Anfänger-Themen 13
J neuer Zeilenumbruch in Datei Java Basics - Anfänger-Themen 7
L Zeilenumbruch Java Basics - Anfänger-Themen 3
D zeilenumbruch feststellen Java Basics - Anfänger-Themen 8
D zeilenumbruch EOF Java Basics - Anfänger-Themen 2
D ausgabe verändern (statt zeilenumbruch leerzeichen) Java Basics - Anfänger-Themen 2
B In einem Label "Zeilenumbruch" Java Basics - Anfänger-Themen 4
T BufferedWriter Zeilenumbruch Java Basics - Anfänger-Themen 2
P Borland Jbuilder X - Zeilenumbruch im Source Code ? Java Basics - Anfänger-Themen 2
D FileWriter write? Zeilenumbruch ? Java Basics - Anfänger-Themen 4
T JTable, DB, Zeilenumbruch Java Basics - Anfänger-Themen 25
K Zeilenumbruch in Datei schreiben Java Basics - Anfänger-Themen 2
V Zeilenumbruch in Tooltips Java Basics - Anfänger-Themen 13
T readLine ohne anschließenden Zeilenumbruch? Java Basics - Anfänger-Themen 2
G wie 'tabs' und 'zeilenumbruch' in textfile einbauen? Java Basics - Anfänger-Themen 5
G gesteuerter Zeilenumbruch Java Basics - Anfänger-Themen 2
G jEditorPane: inhalt ohne zeilenumbruch darstellen. wie? Java Basics - Anfänger-Themen 3
D Zeilenumbruch & Überschrift Java Basics - Anfänger-Themen 12
N Zeilenumbruch im StringTokenizer?? Java Basics - Anfänger-Themen 4
B Zeilenumbruch blos wie? Java Basics - Anfänger-Themen 4
M Zeilenumbruch im Textfeld Java Basics - Anfänger-Themen 5
G automatischer Zeilenumbruch Java Basics - Anfänger-Themen 5
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 1
N java.util.InputMismatchException Fehler Java Scanner Java Basics - Anfänger-Themen 1
S Scanner soll Groß-/ Kleinschreibung ignorieren Java Basics - Anfänger-Themen 2
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
J Scanner-Klasse Java Basics - Anfänger-Themen 2
B Scanner-If/else kleine Abhebungs-Simulation Java Basics - Anfänger-Themen 3
A Scanner Befehl Java Anfänger Java Basics - Anfänger-Themen 8
D Scanner- Exception NoSuchElementException Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N Problem mit Scanner Java Basics - Anfänger-Themen 2
V Ersätze für Java-Scanner Java Basics - Anfänger-Themen 9
P Methode die eigentlich einen Scanner benötigt mit toString() Java Basics - Anfänger-Themen 5
A Scanner-Error Java Basics - Anfänger-Themen 8
D Java Scanner Java Basics - Anfänger-Themen 9
M String in Scanner einlesen Java Basics - Anfänger-Themen 6
N Eingabe Kommazahlen über Scanner Java Basics - Anfänger-Themen 2
ZH1896ZH Verstehe verschieden Scanner und hasNext() nicht ganz Java Basics - Anfänger-Themen 2
O Mehrfache Scanner-Eingabe durch Komma getrennt Java Basics - Anfänger-Themen 6
I Scanner auf 10 Stellen begrenzt? Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Anzeige

Neue Themen


Oben