我是一個編程初學者,我在java中創建了一個計算器,但無法循環訪問字符的list2數組,然後轉換爲字符數據類型以通過getToken方法。有人能幫助我嗎?Java計算器 - 通過字符串數組循環字符
這是爲gettoken方法...
public Precedence getToken(char symbol)
{
switch (symbol)
{
case '(' : return Precedence.lparen;
case ')' : return Precedence.rparen;
case '+' : return Precedence.plus;
case '-' : return Precedence.minus;
case '/' : return Precedence.divide;
case '*' : return Precedence.times;
case '%' : return Precedence.mod;
case ' ' : return Precedence.eos;
default : return Precedence.operand;
}
}
這是後綴功能
/** Function to convert infix to postfix **/
public String postfix(String infix)
{
String postfix = "";
top = 0;
String s = infix.replaceAll("\\s+", "");
//int p = infix.length();
stack = new Precedence[infix.length()];
stack[0] = Precedence.eos;
String [] str = infix.split(" ");
List<String> list2 = Arrays.asList(str);
Precedence token;
if (s.matches("[-+/*0-9]+[-+/*0-9]"))
{
System.out.println("true");
}
else
{
System.err.println("Invalid expression!");
}
for (int i = 0; i < list2.size(); i++)
{
if (list2.get(i).matches("\\p{Punct}"))
{
token = getToken(list2.get(i));
}
}
問題是什麼,究竟是什麼? – ahanin
如何循環訪問list2數組,如果它是一個字符,然後將其轉換爲字符數據類型? – user3104303
由於您正在驗證包含一個字符的字符串,因此您可以使用'list2.get(i).charAt(0)'獲取該字符,並將其傳遞給'getToken'方法。 – ahanin