Java编码错误:illegal start of expreesion + not a statement

代码

import java.util.*;
public class Solution {
    /**
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    public boolean isValid (String s) {
        // write code here
        
        /**
         * 使用一个栈来存储
        */
        // 1.判断,避免愚蠢的字符
        if(s.charAt(0) == ')' || s.charAt(0) == ']' || s.charAt(0) == '}'){
            return false;
        }
        
        // 2.实例化一个栈
        Stack<Character> stack = new Stack();
        
        // 3.遍历字符串
        for(int i = 0; i< s.length() ;i++){
            // 3.1 判断进栈还是出栈
            if(s.charAt(i) == '(' || s.charAt(i) == '[' || s.charAt(i) == '{'){
                stack.push(s.charAt(i));
            }else{
                // stack.peek() == s.charAt(i) ? stack.pop() : return false;   -------------< 错误位置
            }
        }
    }
}

错误原因

1.illegal start of expreesion

  • 不合法的开始表达
  • 错误原因:三元表达式中只能存放合法的表达式,意思就是三元表达式后面的表达式必须计算之后有值
  • return false 不是合法有值的表达式

2.not a statement

  • 不是一个语句
  • 三元表达式是一个表达式,也就是说不能独立的成为一个语句进行运行,他必须得有有个等号,将表达式的元素结果赋值。

解决方法:换成if -else结构 ,因为不执行的表达式可以用于判断。

posted on 2022-07-29 22:13  哲语鬼  阅读(548)  评论(0编辑  收藏  举报