# Wie Zeichen eingeben mit Klasse Scanner?



## ernst (12. Okt 2008)

Hallo allerseits,
Zahlen und Zeichenketten kann man mit der Klasse Scanner über Tastatur eingeben:

```
public class MainEingabeScanner1 {
    public static void main(String[] args) {
        // Eingabe ganzer Zahlen
        System.out.println("Demo Eingabe ganzer Zahlen");        
        int i1, i2, i3;
        double d1, d2, d3;
        String s1, s2, s3;
        char z;
        
 	Scanner scanner = new Scanner(System.in);
        System.out.println("Bitte ganze Zahl eingeben: ");
        i1 = scanner.nextInt();
        System.out.println("Bitte ganze Zahl eingeben: ");
        i2 = scanner.nextInt();
        i3 = i2 + i1;
        System.out.println("Die Summe ist = "+i3);
        
        // Eingabe von double Zahlen
        System.out.println("Demo Eingabe von double Zahlen");                
        d1 = scanner.nextDouble();
        System.out.println("Bitte ganze Zahl eingeben: ");
        d2 = scanner.nextDouble();
        d3 = d1 + d2;
        System.out.println("Die Summe ist = "+d3);
    
        // Eingabe von Zeichenketten
        System.out.println("Demo Eingabe von Zeichenketten");                
        s1 = scanner.next();
        System.out.println("Bitte ganze Zahl eingeben: ");
        s2 = scanner.next();
        s3 = s1 + s2;
        System.out.println("Die Verknüpfung ist = "+s3);
  }
}
```

Frage:
Wie kann man áber ein einzelnes Zeichen (char) über Tastatur eingeben?
(Habe keine Methode innerhalb der Klasse Scanner gefunden).

mfg
Ernst


----------



## Spin (12. Okt 2008)

Hi, habe nur eine Alternative:


```
public static void main(String[] args) throws IOException {
      BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

      int zahl1;
      int zahl2;

      System.out.println("Erste Zahl eingeben: ");
      zahl1 = Integer.parseInt(input.readLine());

      System.out.println("Zweite Zahl eingeben: ");
      zahl2 = Integer.parseInt(input.readLine());

      System.out.println("Rechenoperation (+/-/x//) eingeben:");
      String s = input.readLine();
      char sign = s.charAt(0);
```



Mit readline liest er dir die Rechenoperationen ein.


Oder mach es so:


```
import java.util.Scanner;

public class Testing
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);

System.out.println("Name:");
String name = keyboard.nextLine();

System.out.println("Age:");
int age = keyboard.nextInt();
keyboard.nextLine( ); //To get rid of '\n'

System.out.println("Job");
String job = keyboard.nextLine();

}
}
```



Mit nextLine()

Um Das ganze auszugeben: System.out.println( "" +.......+...."");



gruß spin


----------



## ernst (12. Okt 2008)

Oder mach es so:


```
import java.util.Scanner;

public class Testing
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);

System.out.println("Name:");
String name = keyboard.nextLine();

System.out.println("Age:");
int age = keyboard.nextInt();
keyboard.nextLine( ); //To get rid of '\n'

System.out.println("Job");
String job = keyboard.nextLine();

}
}
```


Danke für deine Vorschläge.
Wo hast du im 2. Vorschlag eine char Variable??
Dort soll das über Tastatur eingegebene Zeicnen abgespeichert werden.

mfg
Ernst


----------



## 0x7F800000 (12. Okt 2008)

Brauchst du wirklich den fetten scanner? der einfache BufferedReader tut es auch:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/BufferedReader.html#read()


----------



## Spin (12. Okt 2008)

Was möchtest du gerne machen ?

Was willst du einlesen ? 
Mit String liest man alle Zeichen ein, also wofür ein char?

Char habe ich im ersten Beispiel benutzt um zwischen den Rechenoperationen auszuwählen. Mein Programm fängt dabei bei null an.

charAt(Index)....Index: 0

Dieses Zeichen gibt er denn wieder.!


----------



## ernst (12. Okt 2008)

Spin hat gesagt.:
			
		

> Was möchtest du gerne machen ?
> 
> Was willst du einlesen ?
> Mit String liest man alle Zeichen ein, also wofür ein char?
> ...



1)
Du hast recht.
Im 2. Beispiel von dir kann man auch mit charAt(Index) das Zeichen auslesen.

2)
Geht statt
String name = keyboard.nextLine();

auch 
String name = keyboard.next();  ?

was ist für diesen Fall besser?

mfg
Ernst


----------

