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

如何将可空字符串与一个表达式中的多个值进行比较?

皇甫智明
2023-03-14
Stream.of("REG", "UNREG").anyMatch(str::equals)

但是如何修改(或更改)它为可为空的字符串(如果字符串是nullreturnfalse)?

共有1个答案

公西浩
2023-03-14

您可能希望从optional开始,并在optional::map方法中执行流。如果没有结果(str为null),则按照请求返回false:

Optional.ofNullable(str)
        .map(string -> Stream.of("REG", "UNREG")         // Your Stream as at your snippet
                             .anyMatch(string::equals))  // Returns if the str matches any
        .orElse(false);                                  // Returns false if str is null

不要小看一个简单的:

str != null && Stream.of("REG", "UNREG").anyMatch(str::equals);

如果第一个表达式为false(当strnull)时,将不计算表达式的第二部分,因此不会在stream::anymatch内的NPE上失败。

 类似资料:
  • 我有一个字符串变量,其中可能有、和。

  • 问题内容: 我有一个字符串变量,有可能值,和。 我想使用if语句将所有这些值进行比较(大小写相等),例如: 有没有一种方法可以避免使用多个OR(||)运算符并在一个表达式中比较值?例如,像这样: 问题答案: 我找到了更好的解决方案。这可以通过RegEx实现: 对于不区分大小写的匹配:

  • 问题内容: 我是Java的新手,为了实践起见,我试图创建一个十六进制到十进制的数字转换器,因为我已经成功地制作了一个二进制到十进制的转换器。 我遇到的问题基本上是将一个字符串中的给定字符与另一个字符串进行比较。这就是我定义要比较的当前字符的方式: 这是我尝试比较角色的方法: 当我尝试通过仅输入数字(例如12)来运行代码时,它可以工作,但是当我尝试使用“ b”时,会出现一个奇怪的错误。这是运行程序的

  • 我是javascript/jQuery的新手,由于我对javascript和jQuery有非常基本的了解,我可能不知道有许多函数可以帮助我解决我的问题。而我正在做的项目只是为了练习。 所以,我有一个字符串,我想和某些值进行比较,三个不同的值是可能的,它们是相互穷尽的。 那么,如何创建一个具有三个不同可能值的regex变量,然后将其与变量classname中的值进行比较。 没有任何方法可以像这样进行

  • 问题内容: Python如何将多个变量与一个值进行比较?,例如: 我希望返回一个列表: 问题答案: 方法1 方法2 使用元组或列表 方法3 最好是使用set集合