Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package javaapplication7;
- import java.util.*;
- import java.util.regex.*;
- class Teste{
- //metodo de teste
- public static void main(String args []){
- try{
- //Testa duas letras repetidas
- String exp_regular1 = "[A-Z]*([F]{2}|[B]{2}|[U]{2}|[D]{2}|[R]{2}|[L]{2})[A-Z]*";
- //Testa sequencia invalida LETRA1|LETRA|LETRA1
- String exp_regular2 = "[A-Z]*([F].[F]|[B].[B]|[U].[U]|[D].[D]|[R].[R]|[L].[L])[A-Z]*";
- //Testa método que retorna array
- for(int i = 0; i < 1000;i++){
- String[] retorno = new Teste().retornaArray();
- String resultadoFinal = "";
- for(String elem : retorno){
- resultadoFinal += elem;
- }
- if(Pattern.matches(exp_regular1, resultadoFinal)){
- throw new Exception("ERRO RETORNA ARRAY [LETRAS REPETIDAS]= " + resultadoFinal);
- }
- if(Pattern.matches(exp_regular2, resultadoFinal)){
- throw new Exception("ERRO RETORNA ARRAY [LETRA1|LETRA|LETRA1]= " + resultadoFinal);
- }
- }
- //Testa método que retorna String
- for(int i = 0; i < 1000;i++){
- String resultadoFinal = new Teste().retornaString();
- if(Pattern.matches(exp_regular1, resultadoFinal)){
- throw new Exception("ERRO RETORNA STRING [LETRAS REPETIDAS]= " + resultadoFinal);
- }
- if(Pattern.matches(exp_regular2, resultadoFinal)){
- throw new Exception("ERRO RETORNA STRING [LETRA1|LETRA|LETRA1]= " + resultadoFinal);
- }
- }
- }catch(Exception e){
- System.out.println("ERRO!! "+ e.getMessage());
- }
- }
- public String[] retornaArray(){
- String[] valores = {"F", "B", "U", "D", "R", "L"};
- String[] resultado = new String[25];
- Random r = new Random();
- for (int i = 0; i < 25; i++) {
- String sorteio = "";
- do{
- sorteio = valores[r.nextInt(6)];
- //verifica se valor é diferente dos dois anteriores (ou do anterior no caso de i == 1)
- }while((i == 1 && resultado[0].equals(sorteio)) ||
- (i>1 && (resultado[i-1].equals(sorteio) || resultado[i-2].equals(sorteio))));
- //ele só chega nesse ponto se a variavel sorteio bate com as especificações
- resultado[i] = sorteio;
- }
- return resultado;
- }
- public String retornaString(){
- String[] valores = {"F", "B", "U", "D", "R", "L"};
- String resultado = "";
- Random r = new Random();
- for (int i = 0; i < 25; i++) {
- String sorteio = "";
- do{
- sorteio = valores[r.nextInt(6)];
- //verifica se valor é diferente dos dois anteriores (ou do anterior no caso de i == 1)
- }while((i == 1 && resultado.startsWith(sorteio)) ||
- (i>1 && (String.valueOf(resultado.charAt(i-1)).equals(sorteio) ||
- String.valueOf(resultado.charAt(i-2)).equals(sorteio))));
- //ele só chega nesse ponto se a variavel sorteio bate com as especificações
- resultado += sorteio;
- }
- return resultado;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement