URGENTE! Problemas com StringTokenizer!

2 respostas
P

Olá, Estou começando a programar em Java, e amanhã vou fazer a OBI modalidadde júnior.
Pra quem conhece sabe que na maioria dos exercícios vc tem que dar mais de uma entrada na mesma linha. Eu não sabia disso até hoje, e estou tentando entender como eu uso o StringTokenizer ou o Split para separar a variável mas não tou conseguindo…
eu tentei resolver o primeiro exercicio da OBI passada que está no link http://olimpiada.ic.unicamp.br/extras/provas/ProvaOBI2014_prog_f1nj.pdf. O Código que tentei compilar como solução é esse aqui: import java.util.*; import java.io.*; public class fliper { public static void main(String[] args) { String saida = "C"; int p; int r; boolean Teste; String pS, rS; Scanner entrada = new Scanner(System.in); String input = entrada.next(); StringTokenizer mat = new StringTokenizer(input); pS = mat.nextToken(); rS = mat.nextToken(); p = Integer.parseInt(pS); r = Integer.parseInt(rS); Teste = false; if (p < 2) { Teste = true; } if (r < 2) { Teste = true; } if (Teste == false) { if (p == 0) { saida = "C"; } if (p == 1) { if (r == 0) { saida = "B"; } if (r == 1) { saida = "A"; } } System.out.println (saida); } } }
mas ele dá o seguinte erro:
Exception in thread “main” java.util.NoSuchElementException
at java.util.StringTokenizer.nextToken(Unknown Source)
at obi.fliper.main(fliper.java:15)
Não sei mais o que fazer, alguem pode me ajudar? Estou desesperadoooooo!!!
Valeu

2 Respostas

pmlm

StringTokenizer é o que eu usava lá no milénio passado para separar strings, hoje deves usar split.

E, já agora, não vejo porque é que o teu tópico há-de ser mais urgente que os restantes. Aqui ninguém é mais do que os outros…

P

Olá,
desculpe pelo urgente mesmo, é que eu irei fazer a prova amanhã cedo, mas eu também tentei usar o Split e deu o mesmo erro…
Seria algo parecido com isso?? Continua dando o mesmo erro…

import java.util.*;
public class fliper {
	public static void main(String[] args) {
		String saida = "C";
		Scanner entrada = new Scanner(System.in);
		String input = entrada.next();
		String[] uou = input.split(" ");  
		int[] mat = new int[uou.length];  
		int p = mat[0];
		int r = mat[1];
		boolean Teste = false;
		if (p < 2) {
			Teste = true;
		}
		if (r < 2) {
			Teste = true;
		}
		if (Teste == false) {
			if (p == 0) {
				saida = "C";
			}
			if (p == 1) {
				if (r == 0) {
					saida = "B";
				}
				if (r == 1) {
					saida = "A";
				}
			}
			System.out.println (saida);
		}
	}	 
 }

e o erro:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
	at obi.fliper.main(fliper.java:11)
Criado 29 de maio de 2015
Ultima resposta 29 de mai. de 2015
Respostas 2
Participantes 2