# integer einlesen



## Pherseus (7. Mai 2007)

Hi, ich möchte integer einlesen. Habe folgenden Code:


```
char c;
while((c = (char) input.read()) != ' ' && (int) c != 10) {
//todo                    
}
```

input ist dabei eine Instanz von BufferedReader. Nun möchte ich die gelesenen Zahlen aneinanderfügen. Wie mache ich das am Besten? Habe mir überlegt die Zeichen als String zusammenzufügen und dann in einen Integer umzuwandeln. Wie sähe dafür der Code dann aus? Oder gibt es eine besser Lösung?


----------



## limago (7. Mai 2007)

Hi,

ich weiss nicht, ob ich das Problem richtig verstanden habe, aber was ist damit:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReaderDemo {
	public static void main(String[] args) {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		try {
			int wert = Integer.parseInt(in.readLine());
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

ggf. Den String einlesen und mit split aufteilen, falls Du mehrere Zahlen in einer Zeile liest. Oder habe ich Dein Problem nicht verstanden....


----------



## Pherseus (7. Mai 2007)

Wie würde das mit split dann gehen?


----------



## limago (7. Mai 2007)

```
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class ReaderDemo {
	public static void main(String[] args) {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		
		try {
			String zeile = in.readLine();
			
			String [] zahlen = zeile.split(" "); // splitten bei Blank
			
			for (int i = 0 ; i < zahlen.length; i++) {
				
				int wert = Integer.parseInt(zahlen[i]);
				System.out.println(wert);
			}
			
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
```


----------



## Thomas Darimont (7. Mai 2007)

Hallo,

Mit dem Scanner geht das einen Tick einfacher...

```
/**
 * 
 */
package de.tutorials;

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author Tom
 *
 */
public class NumberInputExample {

    /**
     * @param args
     */
    public static void main(String[] args) {
//        Scanner scanner = new Scanner(System.in);
//        System.out.println("How many numbers?");
//        int numberCount = scanner.nextInt();
//        int[] numbers = new int[numberCount];
//        for(int i = 0; i < numberCount;i++){
//            numbers[i] = scanner.nextInt();
//        }
//        scanner.close();
//        System.out.println(Arrays.toString(numbers));
        
        
        //oder alles aus einer Zeile:
        Scanner scanner = new Scanner(System.in);
        System.out.println("Enter a line of numbers:");
        String line = scanner.nextLine();
        Scanner numberScanner = new Scanner(line);
        while(numberScanner.hasNextInt()){
            System.out.println(numberScanner.nextInt());
        }
        numberScanner.close();
        
        scanner.close();
        
    }
}
```

Ausgabe:

```
How many numbers?
5
1
2
3
4
5
[1, 2, 3, 4, 5]

Bzw.:

Enter a line of numbers:
1 2 333 444 555
1
2
333
444
555
```

Gruß Tom


----------

