kandrad
Setembro 19, 2007, 11:37am
#1
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)??
Obrigado a todos pela atenção.
foxlaw
Setembro 19, 2007, 12:20pm
#2
String frase = “alguma;coisa”;
frase.split(";");
:thumbup:
foxlaw
Setembro 19, 2007, 12:21pm
#3
[quote=foxlaw] String frase = “alguma;coisa”;
frase.split(";");
:thumbup: [/quote]
vc quer que 1/2 se transforme em 12? ou que separar o 1 do 2 para depois fazer o calculo ?
thingol
Setembro 19, 2007, 1:22pm
#4
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).
thingol
Setembro 19, 2007, 1:45pm
#5
Um exemplo de uso.
import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;
/**
* Teste da classe StreamTokenizer
*/
public class TesteStreamTokenizer {
public void teste() throws IOException {
String s = "sqrt (b * b - 4.0 / (a * c))";
StreamTokenizer st = new StreamTokenizer (new StringReader (s));
st.ordinaryChar('/');
int tokenType;
while (st.nextToken() != StreamTokenizer.TT_EOF) {
switch (st.ttype) {
case StreamTokenizer.TT_NUMBER:
System.out.println ("Número: " + st.nval);
break;
case StreamTokenizer.TT_WORD:
System.out.println ("Palavra-chave ou identificador: '" + st.sval + "'");
break;
case StreamTokenizer.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 + "'");
}
}
}
public static void main(String[] args) throws IOException {
TesteStreamTokenizer t = new TesteStreamTokenizer();
t.teste();
}
}
kandrad
Setembro 19, 2007, 3:14pm
#6
Muito abrigado a todos vocês pela ajuda.
kandrad
Setembro 19, 2007, 3:15pm
#7
Muito abrigado a todos vocês pela ajuda.