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

继承的空指针异常(Java)

韦锦程
2023-03-14

在我正在编写的程序中,我有以下代码来为单词创建正则表达式并从一系列不同的ArrayList中检索与之匹配的所有单词。

public ArrayList<String> solveWord(String str)
{
    String regex = "";
    String[] strArr = str.split("");
    for (String temp : strArr)
    {
        if (temp.equals(" "))
        {
            regex = regex + "[a-z]";
        }
        else
        {
            String s = "[" + temp + "]";
            regex = regex + s;
        }

    }
    int x = str.length();
    ArrayList<String> m = null;
    System.out.println("2ns");
     switch (x) 
     {
     case 1:  break;
     case 2:  m = let2;
              break;
     case 3:  m = let3;
            break;
     case 4:  m = let4;
            break;
     case 5:  m = let5;
            break;
     case 6:  m = let6;
            break;
     case 7:  m = let7;
            break;
     case 8:  m = let8;
            break;
     case 9:  m = let9;
            break;
     case 10:  m = let10;
            break;
     case 11:  m = let11;
            break;
     case 12:  m = let12;
            break;
     case 13:  m = let13;
            break;
     case 14:  m = let14;
            break;
     case 15:  m = let15;
            break;
     case 16:  m = let16;
            break;
     }   
    System.out.println(" ns");
    ArrayList<String> trans = retrieve(str,m,regex);
    return trans;
}

private ArrayList<String> retrieve(String word, ArrayList<String> arr, String reg)
{
    ArrayList<String> ex = arr;
    ArrayList<String> matches = new ArrayList<String>();
    for (String temp : ex)
    {
        if (temp.matches(reg))
        {
            matches.add(temp);
        }
    }
    return matches;
}

当我从另一个类调用求解(String str)时,行"strArr=str.split (""); 抛出一个空指针异常。我遇到的另一个问题是,当我自己测试这个类时,行if(temp.matches(reg))给出了以下错误。

Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed character     class near index 12
[][h][a-z][h]
            ^
at java.util.regex.Pattern.error(Unknown Source)
at java.util.regex.Pattern.clazz(Unknown Source)
at java.util.regex.Pattern.sequence(Unknown Source)
at java.util.regex.Pattern.expr(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.<init>(Unknown Source)
at java.util.regex.Pattern.compile(Unknown Source)
at java.util.regex.Pattern.matches(Unknown Source)
at java.lang.String.matches(Unknown Source)
at Words.fillInTheBlanks.retrieve(fillInTheBlanks.java:238)
at Words.fillInTheBlanks.solveWord(fillInTheBlanks.java:228)
at Words.tester.main(tester.java:12)

有人能帮忙吗?

共有2个答案

徐隐水
2023-03-14

这里的拆分函数问题是;您需要使用一些字符串进行拆分,而该字符串不能只是“”。如果您想按空格拆分,请写“”。

孔运珧
2023-03-14

正则表达式中不能有空方括号[]。在生成正则表达式之前,必须检查temp是否为空:

if (temp.equals(" "))
{
    regex = regex + "[a-z]";
}
else if (temp.length() > 0)
{
    String s = "[" + temp + "]";
    regex = regex + s;
}

对于NullPointerException,它发生在String[]strArr=str.split ("");行的唯一可能性是str为空。

 类似资料:
  • 问题内容: 有可能这可能是一个双重问题。我将String变量初始化为null。我可能会或可能不会使用一个值更新它。现在我想检查此变量是否不等于null以及我尝试执行的操作是否会得到null指针异常。空指针异常,因为它代价高昂。是否有任何有效的解决方法.TIA 问题答案: 如果您使用 你 不会 得到。 我怀疑你在做什么: 这是因为null 而引发,而不是因为null。 如果仍然无法解释,请发布您用于

  • 我已经更新了我的项目中的一些依赖关系之后,我的Hibernate配置类显示Nullpointerx的。 我将SpringDataJPA存储库与hibernate一起使用,已经超过24小时了,仍然没有找到任何关于小问题的适当解决方案。 我已经尝试过的一些解决方案:- 使用@bean(name=“entityManagerFactory”)提供bean名称 我面临的问题 波姆。xml文件 配置类 db

  • 当我试图从DB查询结果时,我得到一个空指针异常。以下是错误: 这是错误产生的函数。 如果我启动应用程序信息服务(=new ApplicationInfoService()),我会得到一个指向我的服务类的空指针错误,在这里进行查询 错误转到createQuery行,如果我打印出EntityManager,它将返回“null”。为什么我的Entitymanager不能初始化。我在我的登录系统中使用了几

  • 当你点击btnChangePass,我得到错误。 我有一个错误: FATAL EXCEPTION:主进程:com.company.learn2,PID:18854java.lang.NullPointerExcture atcom.company.learn2。Heslo.change密码(Heslo.java:84)在com.company.learn2。Heslo.on点击(Heslo.jav

  • 问题内容: 我在登录模式提交按钮的单击侦听器中遇到问题。 这是错误。 我对什么是空指针异常有一个合理的了解,并且已经彻底搜索了一个类似于我的问题。我试图以几种方式重新格式化点击侦听器,确保我具有正确的视图ID等。 显然,还有更多但与我认为无关的话题。这是带有按钮的对话框的XML文件。 任何帮助将不胜感激。 问题答案: 是因为它不属于 当你调用内部的,它要寻找一个你的活动的布局中。 试试这个代替: