唐祖庭 2021-11-04 21:31 采纳率: 93.3%
浏览 17
已结题

Java 这个怎么改有帮助嘛

img

报错了 ,请教一下怎么改? Operator '!=' cannot be applied to 'java.lang.Object', 'char' 有人会嘛?



```java

public class Exercise05 {
    public static void main(String[] args) {
        // 3. 括号匹配问题
        // 实现judgeBracket(str)方法来判断括号匹配

        String str="public class  Ex2 { {public static void main(String[] args){}}";
        boolean bool=judgeBracket(str);

        System.out.println(bool);

    }

    // 判断括号是否匹配
    private static boolean judgeBracket(String str) {

        MyArrayStack<Object> stack=new MyArrayStack<>();

        for (int i=0; i < str.length(); i++) {
            char charAt=str.charAt(i);

            if ( charAt=='{' ) {
                stack.push('}');
            } else if ( charAt=='(' ) {
                stack.push(')');
            } else if ( charAt=='[' ) {
                stack.push(']');
            } else if ( charAt==']' || charAt=='}' || charAt==')' ) {

                if ( stack.isEmpty() ) return false;

                Object pop=stack.pop();
                if ( pop !=charAt) return false;
            }
        }

        //
        return stack.isEmpty();

    }

    private static
    char getCharAt(char charAt) {
        return charAt;
    }

}

```

  • 写回答

1条回答 默认 最新

  • 其樂无穷 2021-11-04 22:35
    关注

    这个报错的原因是因为pop是对象类型,而charAt是char类型,两个类型不同的元素,无法通过!=进行比较。
    比较简单的改法可以把35行

    Object pop=stack.pop();
    

    改成

    Character pop=(Character)stack.pop();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月12日
  • 已采纳回答 11月4日
  • 创建了问题 11月4日

悬赏问题

  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题