All pastes #1260438 Raw Edit

keyboard

public text v1 · immutable
#1260438 ·published 2008-11-18 15:19 UTC
rendered paste body
// Keyboard.java
import java.io.*;
import java.util.*;

public class Keyboard{
	private static String lastToken = null;
	private static StringTokenizer input;
	private static BufferedReader br = 
		new BufferedReader(new InputStreamReader(System.in));

	// Undersker om token finns
	private static String getToken(boolean readDelimiters){
		String token;
		if (lastToken == null){
			token = getNextToken(readDelimiters);
		}
		else{
			token = lastToken;
			lastToken = null;
		}
		return token;
	}

	// Hmtar nsta token
	private static String getNextToken(boolean readDelimiters){
		final String delimiters = " \t\n\r\f";
		String token = null;
		try{
			if (input == null){
				input = new StringTokenizer
					(br.readLine(), delimiters, true);
			}
			while (token == null || (delimiters.indexOf(token) >= 0 && 
								!readDelimiters)){
				while (!input.hasMoreTokens()){
					input = new StringTokenizer
						(br.readLine(), delimiters,true);
				}
				token = input.nextToken();
			}
		}
		catch(Exception e){
			token = null;
		}
		return token;
	}

	// Returnerar en strng.
	public static String readString(){
		String str;
		try{
			str = getToken(true);
			while (input.hasMoreTokens()){
				str = str + getToken(true);
			}
		}
		catch(Exception e){
			System.out.println("Fel vid strnglsning.");
			str = null;
		}
		return str;
	}

	// Returnerar ett ord.
	public static String readWord(){
		String token;
		try{
			token = getToken(false);
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av ord.");
			token = null;
		}
		return token;
	}

	// Returnerar ett tecken.
	public static char readChar(){
		String token = getToken(true);
		char value;
		try{
			if (token.length() > 1){
				lastToken = token.substring (1, token.length());
			}
			else{
				lastToken = null;
			}
			value = token.charAt (0);
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av tecken");
			value = Character.MIN_VALUE;
		}
		return value;
	}

	// Returnerar en int.
	public static int readInt(){
		String token = getToken(false);
		int value;
		try{
			value = Integer.parseInt(token);
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av int");
			value = Integer.MIN_VALUE;
		}
		return value;
	}

	// Returnerar en long.
	public static long readLong(){
		String token = getToken(false);
		long value;
		try{
			value = Long.parseLong(token);
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av long");
			value = Long.MIN_VALUE;
		}
		return value;
	}

	// Returnerar en float.
	public static float readFloat(){
		String token = getToken(false);
		float value;
		try{
			value = (new Float(token)).floatValue();
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av float");
			value = Float.NaN;
		}
		return value;
	}

	// Returnerar en double.
	public static double readDouble(){
		String token = getToken(false);
		double value;
		try{
			value = (new Double(token)).doubleValue();
		}
		catch(Exception e){
			System.out.println("Fel vid lsning av double");
			value = Double.NaN;
		}
		return value;
	}
}