Zeilenumbruch bei der Eingabe verhindern

Status
Nicht offen für weitere Antworten.

Viriditas

Mitglied
Hallo

Ich möchte gerne ein Sudoku über die Konsole einlesen.

Dies soll auch übersichtlich aussehen, das Problem dabei ist, dass nach jeder Zahleingabe und jedem Enter ein Zeilenumbruch erfolgt.

Wie kann ich das möglichst einfach umgehen, sodass ich 9 Zahlen in einer Reihe einlesen kann?
(Ich möchte dabei wirklich jede Zahl getrennt einlesen!)
Code:
public static void main (String[] Args){
		int i, x;
		int[][] sudoku;
		sudoku=new int[9][9];
		for(i=0;i<=1;i++){
		Out.print("-------------------------------------\n | " );
			for(x=0;x<=8;x++){
				sudoku[i][x]=In.readInt();
				Out.print(" | ");
			}
		
		}
	}
Danke und LG!
 

Murray

Top Contributor
Du verwendest hier In und Out; diese Klassen (oder sind es - entgegen der Konvention großgeschriebene - Member?) sind "non-standard", daher lässt sich schwer sagen, ob es in In auch Methoden gibt, die machen, was Du willst.
 

mahe

Aktives Mitglied
Versuch einfach neun Zahlen nebeneinander, mit Leerschritt getrennt einzugeben und erst am Ende einmal Enter zu drücken.
 

Viriditas

Mitglied
mahe hat gesagt.:
Versuch einfach neun Zahlen nebeneinander, mit Leerschritt getrennt einzugeben und erst am Ende einmal Enter zu drücken.
Das entspricht aber nicht ganz dem, was ich will.
Wäre zwar einfacher, dies als String einzulesen und dann aufzusplitten, aber ich will schon auf der Konsole so eine Art Sudokufeld simmulieren.
 

mahe

Aktives Mitglied
Achso, verstehe.

Ich weiß allerdings nicht, ob das plattformunabhängig überhaupt möglich ist.

Wenn Du ein Unix mit ordentlichem Terminal verwendest (Linux, Mac, ...) kannst Du mit Escape-Sequenzen den Cursor positionieren. In der Windows Konsole funktionieren die aber nicht. Wie man das da regelt weiß ich nicht.
 

Mentor49

Mitglied
Ich weiß nicht ob ich das richtig verstanden hab, aber ich würds so machen:
Aufpassen Pseudocode ;]
Code:
String inputstring = in.readLine();
int l = inputstream.length() - 1;
char[] chars = new char[l];
inputsstring.getChars(0, l, chars, 0);
for (int i = 0; i < l; i++)
{
System.out.print((int) chars[i].toString());
}
Iwie so, haut mich bitte nicht, isn bisschen komisch ich weiß ^^
 

0x7F800000

Top Contributor
alles, was komplizierter als chaotisches hinrotzen von buchstaben ist, lässt sich afair mit der windows-eingabeaufforderungskonsole fast unmöglich umsetzen. Mach dir nicht so schwer ;) nimm swing^^

kleines Beispiel:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class SudokuInput {

	public static int[][] readSudoku(int size){
		// dialog erstellen
		final JDialog dialog=new JDialog((JFrame)null,"Sudoku Input",true);
		dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
		dialog.getContentPane().setLayout(new BorderLayout());
		
		// haufen eingabetextfelder erstellen
		final JTextField[][] textFields=new JTextField[size][size];
		JPanel textFieldsPanel=new JPanel(new GridLayout(size,size));
		for(int x=0; x<size; x++){
		for(int y=0; y<size; y++){
			textFields[x][y]=new JTextField(1);
			textFieldsPanel.add(textFields[x][y]);
		}
		}
		dialog.getContentPane().add(textFieldsPanel,BorderLayout.CENTER);
		
		// ok button erstellen
		JButton okButton=new JButton("Ok");
		class OkActionListener implements ActionListener{
			@Override
			public void actionPerformed(ActionEvent e) {
				//ueberpruefen, ob alle felder leer sind oder nur ziffer beinhalten
				for(JTextField[] column : textFields){
				for(JTextField tf : column){
					tf.setText(tf.getText().trim());
					if(tf.getText().length()==0 || 
					  (tf.getText().length()==1 && "123456789".indexOf(tf.getText())>=0)){
						//ueberpruefung fortsetzen
					}else{
						//irgendwas außer ziffer entdeckt, das passt nicht
						JOptionPane.showMessageDialog(dialog, "Nur Ziffern 1-9 sind erlaubt");
						return;
					}
				}
				}
				
				//test bestanden, dialog zumachen
				dialog.dispose();
			}	
		}
		okButton.addActionListener(new OkActionListener());
		dialog.getContentPane().add(okButton, BorderLayout.SOUTH);
		
		//dialog anzeigen und auf eine gültige eingabe warten
		dialog.setSize(300,300);
		dialog.setVisible(true);
		
		
		//ergebnis rauslesen, ausgeben
		int[][] result=new int[size][size];
		for(int x=0; x<size; x++){
		for(int y=0; y<size; y++){
			result[x][y]=textFields[x][y].getText().length()==0?0:(textFields[x][y].getText().charAt(0)-'0');
		}
		}
		
		return result;
	}
	
	//kleiner test
	public static void main(String... _){
		int[][] sudoku=readSudoku(9);
		for(int x=0; x<sudoku.length; x++){
			for(int y=0; y<sudoku[0].length; y++){
				System.out.print( (sudoku[x][y]==0?"-":sudoku[x][y])+"\t");
			}
		System.out.println();
		}
	}
}
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
JUNSKI Zeilenumbruch JLabel Java Basics - Anfänger-Themen 1
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
S Zeilenumbruch mit Scanner erkennen Java Basics - Anfänger-Themen 9
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
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
Torschti Eingabe von Dezimalzahlen (bis zu zwei Kommastellen) Java Basics - Anfänger-Themen 11
T User input in Verbindung mit ChronoUnit anpassen und falls falsche Eingabe getätigtwird Java Basics - Anfänger-Themen 7
T Eingabe durch eine Zahl dividieren nachgucken? Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
G Programm läuft durch, ohne Eingabe aus dem Chat abzuwarten Java Basics - Anfänger-Themen 4
Jul1n4tor Scanner error bei Eingabe die kein Integer ist Java Basics - Anfänger-Themen 4
S Größte Zahl nach Eingabe der Zahl 0 ausgeben Java Basics - Anfänger-Themen 6
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
M Dialogbox solange abfragen, bis gültige Wert-Eingabe Java Basics - Anfänger-Themen 12
S OOP Java Eingabe in verschiedene Datenbank Tabellen eintragen Java Basics - Anfänger-Themen 7
A Bei VierGewinnt Eingabe per Buchstabe (a,b,c...) Java Basics - Anfänger-Themen 2
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
Lion.King Subtraktion nach Eingabe im Terminal Java Basics - Anfänger-Themen 7
X Erste Schritte Scanner eingabe wird übersprungen Java Basics - Anfänger-Themen 4
L Dauerhaftes Speichern einer Eingabe bei einer ArrayList Java Basics - Anfänger-Themen 26
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben