Ir ao conteúdo
  • Cadastre-se

Java Não consigo mostrar todo resultado do meu código


Posts recomendados

Meu professor passou um trabalho sobre compiladores. Ele quer que eu faça um Analisador Léxico.

Consegui fazer boa parte do código, mas não consigo mostrar o resultado.

Sou iniciante em Java.

Tô utilizando o Eclipse.

 

O resultado que o Professor que quer apareça(Com qualquer resultado, não precisa ter uma entrada.) :

Exemplo:

Expressão: "8 + 8 = 16"

 

Resultado: (O código vai analisar se essa entrada é correta, caso não esteja vai dizer error).

Digito: 8

Operador: +

Digito: 8

Igualdade: =

Digito: 16

 

 

 

Meu código:

package lexico;

import java.util.HashMap;

import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Lexico {
	public static void main (String []args) {
		String code  = "59-8=51";
		int c = 0;
		
		
		Map<String, String> tokens = new HashMap<>();
			tokens.put("[0-9]+", "[Digito:]");
			tokens.put("[/+/-]+", "[Operador:]");
			tokens.put("[/=]+", "[Igualdade: ]");
			
		while(c < code.length()) {
		
			for(Map.Entry<String, String> entry : tokens.entrySet()) {
			
				Pattern verificador = Pattern.compile(entry.getKey());
				Matcher ve = verificador.matcher(code);
	
				
				if(ve.find() && ve.start() == c) {
					System.out.println(entry.getValue() + ve.group());	
					c = c + ve.group().length();
				}
			} 
		}
	}
}

Resultado do meu código: (O resultado tem que sair na ordem das expressões).

 

image.png

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...