Zahlen und Buchstaben in cmd eingeben

brodolsky

Mitglied
Hallo leute,

ich hab folgendes Problem:
Ich hab soweit alle aufgaben bearbeitet und das Program funktioniert, nun soll ich es aber noch irgendwie einrichten damit die Zahlen und Buchstaben in der Eingabeaufforderung eingegeben werden können. ich hab folgendes schonmal versucht aber komm einfach nicht weiter:

Ich komm einfach nicht dahinter wie ich das alles verknüpfen kann und man jede beliebige Zahl und jeden buchstaben eingeben kann...

Java:
import java.util.Scanner;

public class Reihungen
{

int[]  zahlen = new  int[tastatur];
char[] buchst = new char[tastatur];

/*public Reihungen(int x, int y, int z)
{
zahlen[0]=x;
zahlen[1]=y;
zahlen[2]=z;/
}
	
public Reihungen(char a, char b, char c)
{
buchst[0]=a;
buchst[1]=b;
buchst[2]=c;
}*/
	
	public static void main(String [] args)
	{
	
	Scanner tastatur = new Scanner();
	System.out.println("Bitte geben Sie ihre Zahlen ein:");
	Reihungen = tastatur.nextInt(int[] zahlen);
	Reihungen = tastatur.nextChar(char[] buchst);
	
	Reihungen objekt1 = new Reihungen(2,3,4);
	Reihungen objekt2 = new Reihungen('l','o','l');
	
	objekt1.pruefgroesse();
	objekt1.summe_int();
	objekt2.summe_char();
	objekt1.pruefgrade(9);
	objekt2.buchst_gross_klein();
	
	}


/*public void summe()
{
int ergebnis = 0;
ergebnis = zahlen[0]+zahlen[1]+zahlen[2];
System.out.println("Summe aller Elemente = "+ergebnis+"\n");
}*/


//2. Aufgabe

public void summe_int()
{
int ergebnis1 = 0;
	for(int i=0; i<zahlen.length; i++)
	{
	System.out.print("Zwischenergebnis: "+ergebnis1+" + ");
	ergebnis1 = ergebnis1 + zahlen[i];
	System.out.println(zahlen[i]+" = "+ergebnis1);
	}

System.out.println("Summe aller Elemente = "+ergebnis1+"\n");
}	

public void summe_char()
{
int ergebnis2 = 0;
	for(int i=0; i<buchst.length; i++)
	{
	System.out.print("Zwischenergebnis: "+ergebnis2+" + ");
	ergebnis2 = ergebnis2 + buchst[i];
	System.out.println(buchst[i]+" = "+ergebnis2);
	}

System.out.println("Summe aller Elemente = "+ergebnis2+"\n");
}	

//3. Aufgabe

public void pruefgrade(int y)
{
	System.out.println("Die geraden Zahlen wurden mit "+y+" ausgetauscht: ");
	int count = 0;
	for(int i = 0; i<zahlen.length; i++)
	{
	if(zahlen[i]%2==0)
	{
	zahlen[i]=y;
	count ++; 

	}
	
	System.out.println(zahlen[i]);
	
	}

	System.out.println("Es wurden "+count+" Zahlen durch "+y+" ausgetauscht!");
}

//5. Aufgabe

public void pruefgroesse()
{
System.out.println("Werte des Array vor dem Sortieren:");
ausgabe();
int temp = 0;
for(int j=0; j<zahlen.length-1; j++)
{
for(int i=0; i<zahlen.length-1; i++)
{
	if(zahlen[i]<zahlen[i+1])
	{
	temp = zahlen[i];
	zahlen[i] = zahlen[i+1];
	zahlen[i+1] = temp;
	}
}
}
System.out.println();
System.out.println("Werte des Array nach dem Sortieren:");
ausgabe();	
System.out.println();
}

public void ausgabe()
{
for(int i=0; i<zahlen.length; i++)
{
System.out.print(zahlen[i]+" ");
}
System.out.println();
}

public void ausgabe1()
{
for(int i=0; i<buchst.length; i++)
{
System.out.print(buchst[i]+" ");
}
System.out.println();
}

//6.Aufgabe

public void buchst_gross_klein()
{ 
ausgabe1();
	for(int i=0; i<buchst.length; i++)
	{
	buchst[i] = Character.toUpperCase(buchst[i]);
	
	}
ausgabe1();
	
	
}

}
 
Mann kann mit einem Scanner nicht direkt ein Array einlesen. Deswegen musst du erst fragen wie viele Zahlen der User gerne eingeben möchte (oder diese Zahl festsetzen) und dann in einer Schleife ein lokales Array mit den Eingaben befüllen.

Java:
 System.out.print("Anzahl an Zahlen eingeben: ");
int zahlen[] = new int[tastatur.nextInt()];
for (int i=0;i<zahlen.length;i++)
{
    System.out.print("Geben Sie die "+i+". Zahl ein: ");
    zahlen[i]=tastatur.nextInt();
}
Das ganze dann noch analog für zeichen. Wobei du einen char z.B. über
Code:
tastatur.next().charAt(0)
einlesen könntest, aber auch über einen InputStreamReader.

PS: Du hättest das auch noch in den letzten Thread http://www.java-forum.org/java-basi...-konstruktor-uebergeben-hilfe.html#post976653 schreiben können.
 
> erst fragen wie viele Zahlen

Oder ein Abbruchkennzeichen eingeben.

Konsoleneingaben sollten immer gegen die Eingaben von Nicht-Zahlen geprüft werden, wenn jemand die Zehn so schreibt >lo<
🙂
 
>
Konsoleneingaben sollten immer gegen die Eingaben von Nicht-Zahlen geprüft werden, wenn jemand die Zehn so schreibt >lo<
🙂


Zwei Fragen beschäftigen mich "Totalanfänger..."
>>> 1. wie prüft man denn am einfachsten die Eingabe von "Nicht-Zahlen"?
>>> 2. Liest man eigentlich am besten immer Strings mit Scanner ein, oder gibt es auch Möglichkeiten direkt Integer einzulesen und wenn es halt keiner ist, dann eine Exception zu werfen?

Danke!
Berg
 
1.
Code:
scanner.hasNextInt()
geht oder
Java:
char c = '|';

if(!Character.isDigit(c)) {
   System.out.println("Keine Zahl!");
}
Du müsstest die Eingabe also in einer Schleife durchlaufen.
Es wäre auch ein Prüf-Regex möglich.

2. [JAPI]Scanner[/JAPI] bietet für alle möglichen Datentypen Lese-Methoden an.
 
> 1. wie prüft man denn am einfachsten die Eingabe von "Nicht-Zahlen"?

Laß' es Java für dich machen, z.B. so
Java:
int toInt(String s) {
  int i;
  try {i=Integer.parseInt(s);return i;} 
  catch (Exception e) {return Integer.MAX_VALUE;}
}
 

Zurück
Oben