微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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结构 ,因为不执行的表达式可以用于判断。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐