Por exemplo, se o usuário digitar no JTextField {1 + 2 + [3 + 4 - (5 +6)]}, quero que só o que vá para a pilha seja {}, [] e ().
Como faço isso?
Obrigado.
Por exemplo, se o usuário digitar no JTextField {1 + 2 + [3 + 4 - (5 +6)]}, quero que só o que vá para a pilha seja {}, [] e ().
Como faço isso?
Obrigado.
Digamos que você está armazenando a resposta do JTextField numa variável chamada "resposta".
for(int i = 0; i < resposta.length() ; i++ )
{
if(!Character.isDigit(resposta.charAt(i))) {
//empilha resposta.charAt(i)
}
}
Acredito que isso resolva.
Ajuda sim, obrigado.
Mas o que exatamente faz este método isDigit (ou a negação dele, nesse caso)? Ele vai pegar tudo que nao for número? Se sim, acho que não funciona pra mim, pois também não posso pegar os operadores matemáticos.
Obrigado.
Resolvido. Só usei o método String.valueOf(char) e testei com um equals().
Valeu.
Mas agora estou com outro problema.
Quero que, se existir um caracter ‘)’ na lista, o programa remova-o e remova o caracter ‘(’ junto. Como faço isso?
Obrigado.
Você pode fazer assim!
String literal = "{1 + 2 + [3 + 4 - (5 +6)]}";
String literalAlterado = literal.replaceAll("[+-=*\\s]", "");
System.out.println(literalAlterado);
Retirando o () também
String literalAlterado = literal.replaceAll("[+-=*\\s()]", "");