Problem mit dem Scanner und Splitten

Disap

Mitglied
Hallo zusammen.

Ich möchte mit dem Scanner zwei Worte einlesen und wieder ausgeben lassen, nur funktioniert das hier leider nicht richtig

Java:
import java.util.Scanner;

public class ScannerTest {

	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
		
		String scannerinput = scanner.next();
		scannerinput = scannerinput.toLowerCase();
		System.out.println(scannerinput);
		String[] splitScannerinput = scannerinput.split(" ");
		
		System.out.println("Das erste Wort war: "+splitScannerinput[0]);
		System.out.println("Das zweite Wort war: "+splitScannerinput[1]); //15

	}

}

Die Konsole sagt dazu (hallo Welt ist eingabe, Zeile 15 ist im Quelltext markiert)

hallo welt
hallo
Das erste Wort war: hallo
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at ScannerTest.main(ScannerTest.java:15)



Warum funktioniert das mit dem Splitten nicht?

Grüße,
Disap
 
Hallo,

scanner.next() liest nicht die komplette Zeile sondern nur den "ersten" String dieser Zeile...
wenn du eine komplette Zeile einlesen möchtest musst du nextLine() verwenden:
Java:
/**
 * 
 */
package de.tutorials;

import java.util.Scanner;

/**
 * @author Thomas.Darimont
 *
 */
public class StringInputExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        Scanner scanner = new Scanner(System.in);
        if(scanner.hasNextLine()){
            String line = scanner.nextLine();
            String[] strings = line.split(" ");
            System.out.println("0: "+ strings[0]);
            System.out.println("1: "+ strings[1]);
        }
        scanner.close();
    }

}

Gruß Tom
 
Zurück