Bom dia!
Amigos estou tendo problemas ao usar split.
Tenho um programa(uma calculadora) que recebe valores passados pelo args por exemplo 1 2 3 1/2 1/4
A minha dúvida é como eu faço para separar as frações para poder converter em inteiro?
OU tem como eu fazer algo do tipo: int num = Integer.parseInt(1/2)??
vc quer que 1/2 se transforme em 12? ou que separar o 1 do 2 para depois fazer o calculo ?
T
thingol
Para esse tipo de aplicação, use java.io.StreamTokenizer. Ele separa a entrada em “tokens”, e lhe diz o que cada um deles é (se é um número, uma string, um comentário ou um operador).
T
thingol
Um exemplo de uso.
importjava.io.IOException;importjava.io.StreamTokenizer;importjava.io.StringReader;/** * Teste da classe StreamTokenizer */publicclassTesteStreamTokenizer{publicvoidteste()throwsIOException{Strings="sqrt (b * b - 4.0 / (a * c))";StreamTokenizerst=newStreamTokenizer(newStringReader(s));st.ordinaryChar('/');inttokenType;while(st.nextToken()!=StreamTokenizer.TT_EOF){switch(st.ttype){caseStreamTokenizer.TT_NUMBER:System.out.println("Número: "+st.nval);break;caseStreamTokenizer.TT_WORD:System.out.println("Palavra-chave ou identificador: '"+st.sval+"'");break;caseStreamTokenizer.TT_EOL:System.out.println("Fim de linha:");break;case'(':System.out.println("Abre parênteses");break;case')':System.out.println("Fecha parênteses");break;case'+':System.out.println("Mais");break;case'/':System.out.println("Dividir");case'*':System.out.println("Multiplicar");break;default:System.out.println("Token = '"+(char)st.ttype+"'");}}}publicstaticvoidmain(String[]args)throwsIOException{TesteStreamTokenizert=newTesteStreamTokenizer();t.teste();}}