当前位置: 首页 > 知识库问答 >
问题:

用。Split方法和jop.InputDialog Java处理空问题

贲绪
2023-03-14

这是一个uni项目的代码片段,我对java相当陌生,所以请原谅任何糟糕的代码。其中一个限制是代码在退出/取消时不能有错误。所以我理解JoptionPane.ShowInputDialog上的取消按钮返回null,但是'parts=temp.split(“”)‘部分似乎是出于我不知道的原因阻止输入为null?当我摆脱parts=temp.split()时,当选择cancel按钮时不会抛出异常,但显然for循环不起作用。所以我需要做的是在取消时不会产生异常或错误。任何帮助都不胜感激!*)**编辑**我们还禁止使用catch、try或break任何while循环。必须以true/false退出。

    while (X == true && flag == true) {
        input = JOptionPane.showInputDialog("Tell me more about " + topics[z]);
        String temp = input;
        if (input != null) {
            flag = true;
        }
        else if (input == null) {
            flag = false;
        }

        parts = temp.split(" ");

        for (int i = 0; i < parts.length; i++) {
            for (int x = 0; x < topics.length; x++) {
                if (parts[i].equals(topics[x])) {
                    cut = parts[i];
                    break;
                }
            }
        }
        for (int i = 0; i < topics.length; i++) {
            if (cut.equals(topics[i])) {
                z = i;
                break;
            }

        }

        input = cut;
        System.out.print(cut);
        System.out.println(z);

        X = Arrays.asList(topics[z]).contains(input);
        System.out.println(X);

    }

共有1个答案

丁嘉庆
2023-03-14

如果(input!=null),则需要在内写入parts=temp.split(“”);,并确保在此之前初始化了parts;否则,您还将在parts.length行中获得NPE。我假设topics不为空:

while (X == true && flag == true) {
        input = JOptionPane.showInputDialog("Tell me more about " + topics[z]);
        String temp = input;
        parts = new String[initialArraySize];

        if (input != null) {
            parts = temp.split(" ");
            flag = true;
        }
        else if (input == null) {
            flag = false;
        }



        for (int i = 0; i < parts.length; i++) {
            for (int x = 0; x < topics.length; x++) {
                if (parts[i].equals(topics[x])) {
                    cut = parts[i];
                    break;
                }
            }
        }
        for (int i = 0; i < topics.length; i++) {
            if (cut.equals(topics[i])) {
                z = i;
                break;
            }

        }

        input = cut;
        System.out.print(cut);
        System.out.println(z);

        X = Arrays.asList(topics[z]).contains(input);
        System.out.println(X);

    }

 类似资料:
  • 设备检测处理 Step1: 确认chrome浏览器否开启 摄像头 / 麦克风权限 点击浏览器地址栏最左侧的安全锁图标,或者地址栏最右侧的摄像头图标,修改麦克风 / 摄像头为允许(修改后需要刷新页面) Step2: 确认电脑系统是否允许chrome浏览器使用 摄像头 / 麦克风 请检查系统是否允许浏览器使用摄像头/麦克风,Mac请前往“安全性与隐私”查看,Windows请前往“隐私”查看,修改后需要

  • 本文向大家介绍JavaScript Split()方法,包括了JavaScript Split()方法的使用技巧和注意事项,需要的朋友参考一下 split()方法的定义和用法: split()方法可以利用字符串的子字符串的作为分隔符将字符串分割为字符串数组,并返回此数组。 注:作为分割符的子字符串不会成为返回的数组的元素的一部分或者数组元素的一员。 这里只介绍使用普通字符作为分隔符,关于使用正则表

  • Python3 字符串 描述 split()通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子字符串 语法 split()方法语法: str.split(str="", num=string.count(str)) 参数 str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num -- 分割次数。 返回值 返回分割后的字符串列表。

  • 本文档介绍 DM 中可能存在的、常见的性能问题及其处理方法。 在诊断与处理性能问题时,请确保已经正确配置并安装 DM 的监控组件,并能在 Grafana 监控面板查看 DM 的监控指标。 在诊断性能问题时,请先确保对应组件正在正常运行,否则可能出现监控指标异常的情况,对性能问题的诊断造成干扰。 在诊断问题前,也可以先了解 DM 的性能测试报告。 当数据迁移过程存在较大延迟时,若需快速定位瓶颈是在

  • 本文向大家介绍Python脚本处理空格的方法,包括了Python脚本处理空格的方法的使用技巧和注意事项,需要的朋友参考一下 最近小编遇到一个奇葩问题,就是上传代码时拷贝vs里面的代码不能直接粘贴,否则空格会不符合要求,怎么解决此问题呢?下面小编给大家分享我的解决方案,希望能够帮助到大家! 去掉空格代码 delSpace.txt里面存放的是要粘贴的代码,运行后即可得到结果。 以上所述是小编给大家介绍

  • 本文向大家介绍批处理闪退、运行中断等问题的处理方法,包括了批处理闪退、运行中断等问题的处理方法的使用技巧和注意事项,需要的朋友参考一下 因为我只会一些批处理代码,所以我的“局域网共享一键修复”等软件就都做成了批处理程序(后缀名为.bat)供大家使用。有些网友反馈:右键运行批处理,会一闪而过。或者,运行后共享修复也不成功。下面我整理汇总了一些最常见的情况及其原因,供大家参考。 一、闪退 1、不要随便