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

比较两个字符串给出java.lang.NullPointerException

龙德义
2023-03-14
 Boolean hasProfile7 = Boolean.valueOf(request.getParameter("hasProfile7"))
 Boolean hasProfile7 = (request.getParameter("hasProfile7").equals("on")) ? true : false;
 Boolean hasProfile7 = (request.getParameter("hasProfile7") == "on") ? true : false;

这让我总是虚伪。

我能做什么??我只希望bool在“on”时为True,在“null”时为false

共有1个答案

蓝夕
2023-03-14

这是比较常量和字符串的空安全方法:

"some-value".equals(variable) // ok

如果variable为null,则以下代码段将引发空指针异常,因为不允许对null值调用equals方法:

variable.equals("some-value") // not recomended

如果值包含“on”,此方法将返回true,否则将返回false:

public boolean isChecked(final String value) {
    if (Objects.isNull(value)) {
        return false;
    }

    if ("on".equals(value.toLowerCase())) {
        return true;
    }

    return false;
}
 类似资料:
  • 问题内容: 我有一个简单的疑问。如果有人帮助我,那就太好了。 我有两个字符串: 这两个值相等,但是如何在Java中比较它们呢?我们拥有并用于比较字符串alpha值,类似地,如何比较数字值。 问题答案: 这就对了。您可以使用方法将数字字符串转换为整数,该方法将返回类型。然后比较与相同。

  • 在与字符串进行比较时,我们可以使用或 在中,我们知道它检查引用,但在中它检查内容。 假设有两个字符串 字符串s=“SO”;字符串s1=“SO”; 所以在这种情况下,s1==s和s.equals(s1)都将为真。 但在这里它给了我错误 所以我假设比优先级高 所以在这种情况下 它将像(“s1)==s一样被拆分,现在“s1”将是一个新字符串,因此新字符串永远不会等于s,因此其打印错误 我只是想知道我的想

  • 我会如何比较以下两个日期?

  • 问题内容: 有什么方法可以像下面这样在SQL Server 2008存储过程中比较两个字符串? 如果字符串相同,则返回0 如果根据当前的排序顺序,第一个参数小于第二个参数,则返回-1。 否则返回1。 以上方法我在MySQL中找到,但在SQL Server中找不到。 问题答案: SQL Server中没有直接的字符串比较功能 笔记 您可以使用CREATE FUNCTION等通过UDF进行包装 您可能

  • 我正在尝试这个代码编写练习,我太迷路了! 它甚至不编译,但即使它编译了,我肯定它也不会工作。

  • 问题内容: 更新:我应该早点指定它,但是并非所有名称都只是浮点数。例如,其中一些以“ YT”为前缀。因此,例如“ YT1.1。所以,您遇到相同的问题,YT1.9 <YT1.11应该为真。我真的很惊讶字符串比较失败…。 您好,这应该是一个非常简单的问题,但我似乎找不到答案。我想按名称对一堆XL工作表进行排序。每个名称都是数字,但与教科书“节”的编号方式相同,这意味着第4.11节在4.10之后,在4.