Comment convertir les caractères de ce code en chaînes? L'InfixToPostfix doit être en mesure de prendre des chaînes plutôt que des caractères afin de pouvoir accepter des nombres et des espaces à deux chiffres. Aucune suggestion? Merci d'avance.InfixToPostfix convertir le caractère en chaîne
import java.util.Stack;
public class InfixToPostfix
{
private Stack operators = new Stack();
public InfixToPostfix()
{
}
public String toPostfix(String infix)
{
char[] characters = new char[100];
int i;
int length = infix.length();
infix.getChars(0, length, characters, 0);
char operator;
String output = "";
for (i = 0; i < length; i++)
{
if (isOperator(characters[i]))
if (operators.empty())
operators.push(characters[i]);
else
{
if (operatorLessPrecedence(characters[i]))
{
do
{
output = output + operators.pop();
}
while (!operators.empty() && operatorLessPrecedence(characters[i]));
operators.push(characters[i]);
}
else
operators.push(characters[i]);
}
else
output = output + characters[i];
}
while (!operators.empty())
{
operator = (char)operators.pop();
output = output + operator;
}
return output;
}
/**
* operator
*/
public boolean isOperator(char c)
{
if (c == '*' ||
c == '/' ||
c == '+' ||
c == '^' ||
c == '-')
return true;
else
return false;
}
public boolean operatorLessPrecedence(char o)
{
int operatorPrecedence = precedence(o);
int tosPrecedence = precedence((char)operators.peek());
return (operatorPrecedence <= tosPrecedence);
}
/**
* precedence
*/
public int precedence(char o)
{
switch (o)
{
case '+': return 1;
case '-': return 1;
case '*': return 2;
case '/': return 2;
case '^': return 3;
}
return 5;
}
}