在 Java 中连接 2 个三元运算符的结果时,字符串连接无法正常工作

2023-12-06

尊敬的Java大师们!

请您解释一下,为什么在 Java 中连接 2 个三元运算符的结果时,字符串连接不能正常工作?

Example:

String str = null;
String x = str != null ? "A" : "B" + str == null ? "C" : "D";
System.out.println(x);

输出是“D”,但我期望“BC”。

我怀疑它是这样工作的,因为操作员的优先级,但我不确定,我们到底是如何得到上述情况的“D”的。这种情况采用什么计算算法?


其解释如下代码:

String x = str != null ? "A" : ("B" + str == null ? "C" : "D");

"B" + str不为空,因此它将被评估为"D"

在 OSborn 的回答的帮助下,您可以使用以下代码执行您期望的操作:

String x = (str != null ? "A" : "B") + (str == null ? "C" : "D");

因为你只是比较str with null两个条件语句几乎相同,可以这样缩短:

 String x = (str != null ? "AD" : "BC");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Java 中连接 2 个三元运算符的结果时,字符串连接无法正常工作 的相关文章

  • 在 JTable 中移动行

    我使用 MVC 模式 并且有一个如下所示的 JTable List
  • 热重载在docker中运行的java程序

    我开发了一个java程序 应该在docker中运行 然而 我在调试docker中运行的java程序时遇到了很多痛苦 我在网上搜索 一些教程提出了像 spring dev tools 这样的工具 因为我的java程序是基于spring boo
  • 如何在 JFace 的 TableViewer 中创建复选框?

    我创建了一个包含两列的 tableViewer 我想将其中一列设为复选框 为此 我创建了一个 CheckBoxCellEditor 但我不知道为什么它不起作用 名为 tableName 的列显示其值正常 色谱柱规格如下 String COL
  • AES 加密 Java/plsql

    我需要在Java和plsql DBMS CRYPTO for Oracle 10g 上实现相同的加密 解密应用程序 两种实现都工作正常 但这里的问题是我对相同纯文本的加密得到了不同的输出 下面是用于加密 解密过程的代码 Java 和 PLS
  • 线程自动利用多个CPU核心?

    假设我的应用程序运行 2 个线程 例如渲染线程和游戏更新线程 如果它在具有多核 CPU 当今典型 的移动设备上运行 我是否可以期望线程在可能的情况下自动分配给不同的核心 我知道底层操作系统内核 Android linux内核 决定调度 我的
  • ExceptionConverter:java.io.IOException:文档没有页面。我正在使用 iText

    当我执行下面的代码时 File f new File c sample pdf PdfWriter getInstance document new FileOutputStream f document open System out p
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • java.io.IOException: %1 不是有效的 Win32 应用程序

    我正在尝试对 XML 文档进行数字签名 为此我有两个选择 有一个由爱沙尼亚认证中心为程序员创建的库 还有一个由银行制作的运行 Java 代码的脚本 如果使用官方 认证中心 库 那么一切都会像魅力一样进行一些调整 但是当涉及到银行脚本时 它会
  • 如何在 Java 中禁用 System.out 以提高速度

    我正在用 Java 编写一个模拟重力的程序 其中有一堆日志语句 到 System out 我的程序运行速度非常慢 我认为日志记录可能是部分原因 有什么方法可以禁用 System out 以便我的程序在打印时不会变慢 或者我是否必须手动检查并
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 尝试使用 Ruby Java Bridge (RJB) gem 时出现错误“无法创建 Java VM”

    我正在尝试实现 Ruby Java Bridge RJB gem 来与 JVM 通信 以便我可以运行 Open NLP gem 我在 Windows 8 上安装并运行了 Java 所有迹象 至少我所知道的 都表明 Java 已安装并可运行
  • 将 Long 转换为 DateTime 从 C# 日期到 Java 日期

    我一直尝试用Java读取二进制文件 而二进制文件是用C 编写的 其中一些数据包含日期时间数据 当 DateTime 数据写入文件 以二进制形式 时 它使用DateTime ToBinary on C 为了读取 DateTime 数据 它将首
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • 将多模块 Maven 项目导入 Eclipse 时出现问题 (STS 2.5.2)

    我刚刚花了最后一个小时查看 Stackoverflow com 上的线程 尝试将 Maven 项目导入到 Spring ToolSuite 2 5 2 中 Maven 项目有多个模块 当我使用 STS 中的 Import 向导导入项目时 所
  • Windows 上的 Nifi 命令

    在我当前的项目中 我一直在Windows操作系统上使用apache nifi 我已经提取了nifi 0 7 0 bin zip文件输入C 现在 当我跑步时 bin run nifi bat as 管理员我在命令行上看到以下消息 但无法运行
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 如何测试 spring-security-oauth2 资源服务器安全性?

    随着 Spring Security 4 的发布改进了对测试的支持 http docs spring io spring security site docs 4 0 x reference htmlsingle test我想更新我当前的
  • android Accessibility-service 突然停止触发事件

    我有一个 AccessibilityService 工作正常 但由于开发过程中的某些原因它停止工作 我似乎找不到这个原因 请看一下我的代码并告诉我为什么它不起作用 public class MyServicee extends Access

随机推荐

  • 从任何角度来看 ++i 和 i+=1 有什么区别

    这是 kn king 的 c 编程 现代方法 中的一个问题 我无法理解他给出的解决方案 The expression i is equivalent to i 1 The value of both expressions is i aft
  • Django 中查询集中与多行记录相关的字段的串联

    我必须建立一对多关系的模型 我试图用它来区分记录的类型 假设第一个模型专用于书籍信息 第二个模型是某些类型 例如 A B C 并且类型表与书籍之间存在间接关系 因此每本书可以是 A B 或 C 或任何可能的组合类型 我想使用串联 或注释中的
  • 有没有办法将 twilio 中的 mulaw 音频流保存在文件中

    我正在使用 Twilio 语音流功能 但我不想使用 Twilio 录音功能 当 Twilio 开始向我的服务器发送语音流时 我想将其作为音频文件实时存储到磁盘中 我今天遇到了同样的问题 并找到了一种为 mu law 标头生成 WAVE 标头
  • 读取行时,awk $line 带有多个分隔符

    我正在尝试一个小的变化this 除了我告诉 awk 要根据第 5 个字段分割的文件的分隔符可以是冒号 或制表符 t 我做的是awk F t 单独来看 它确实打印了正确的 5 字段 但是 当我尝试将其合并到更大的命令中时 它返回以下错误 pr
  • Bash shell 十进制到二进制以 2 为基数的转换

    我正在 Bash 中寻找一种将十进制数转换为二进制数的简单方法 我有需要转换的变量 ip1 ip2 ip3 ip4 有没有一种简单的方法可以做到这一点 而无需查看每个单独的数字 我宁愿不必编写大量代码 您可以使用bc as echo oba
  • 连接来自位于不同服务器上的多个 SQL Server 数据库的表

    连接位于不同服务器上的数据库上的 SQL Server 数据库表的推荐方法是什么 所有数据库都将位于同一网络上 链接服务器可以工作 但有一些问题让我试图避免它们 随着时间的推移 它们会让从高层管理您的环境变成一场噩梦 服务器来来去去 升级等
  • 如何测试列表是否按升序排序

    这是练习的问题 编写一个函数来检查列表是否按升序排序 def ascending lst for k in range 0 len lst if lst k lt lst k 1 print Ok else print NOk the nu
  • Flask SocketIO 不会向特定房间发送数据

    我正在创建一个程序 该程序从 Flask 应用程序获取数据 并且可以将数据发送到 Flask 应用程序 并且我正在使用 Socket IO 来执行此操作 socketio emit receive data data 当发送到此时 这最终会
  • 表情符号替换 - PHP

    我需要将文本表情符号替换为 html 图像标签 我整理了以下数据 private smile array gt o 3 c gt 8 private laugh array gt D D D 8 D x D X D D D 3 8 priv
  • AutoMapper - 类型的条件映射

    我想做类似以下的事情 我想知道是否有人知道该怎么做 Mapper CreateMap
  • 在phonegap中将base64字符串转换为pdf

    在我的应用程序中 我收到了代表 PDF 的 Base64 字符串 我希望用户能够将 base64 作为 pdf 保存到他的手机上 我一直在寻找科尔多瓦文件传输插件 但需要一个可以下载文件的 服务器 路径 而不是转换 base64 字符串 有
  • swagger.json 路径和定义为空。规范中没有定义操作

    我正在开发一个 net core Web 应用程序 我正在使用 swagger 并且我已经做了所有必要的调整 不幸的是它不起作用 我只是看到No operations defined in spec 在 swagger 输出页面中 swag
  • 如何使手势识别器在动画 UIImage 视图中工作

    我在图像视图中有 5 个动画图像 并且希望允许用户根据默认 ID 点击它们并将其推送到另一个视图 我尝试添加手势点击 但图像视图未检测到 有人可以给我一些建议吗 编辑 最终我没有使用它 而是设置了一个 UIButton 谢谢 viewDid
  • Excel 2013 VBA 清除所有筛选器宏

    看来旧的宏不起作用 我有适当的安全设置来运行 VBA 宏 但是当我尝试了几种清除工作表上所有过滤器的方法时 我收到编译错误 这是我尝试过的 Sub AutoFilter Remove This macro removes any filte
  • React Native 导航:重置堆栈导航器

    我正在使用 React Navigation 5 在顶部有一个抽屉导航器 带有以下屏幕
  • 使用 Python 操作其他程序的 GUI?

    我这里有一个程序 有一个输入框和一个按钮 我希望 python 在输入框中输入一个字符串 然后按下按钮 解决这个问题的最佳方法是什么 顺便说一句 这是针对 Windows 7 的 pyWinAuto 可以很好地解决这个问题 使用它 您可以根
  • 从 x86 应用程序获取 x64 进程主模块位置?

    我正在尝试获取操作系统上正在运行的进程的所有文件路径Process GetProcesses 方法 它在 x64 NET 应用程序下工作得很好 但是如果我尝试从 x86 NET 应用程序迭代进程列表 情况就会发生变化 因为Process M
  • C++ 结构体有默认构造函数吗?

    我写了以下代码片段 void foo struct bar int a bar cout lt lt Value of a is lt lt bar a 并用 g 4 2 1 Mac 编译它 输出是 a 的值为 0 c 中结构体的数据成员总
  • 使用 Java 和 JBoss 进行长轮询

    我正在寻找一个例子 如何在java中实现长轮询机制 我很想使用无状态 EJB 我知道类似的东西会起作用 WebService serviceName mywebservice Stateless public class MyWebServ
  • 在 Java 中连接 2 个三元运算符的结果时,字符串连接无法正常工作

    尊敬的Java大师们 请您解释一下 为什么在 Java 中连接 2 个三元运算符的结果时 字符串连接不能正常工作 Example String str null String x str null A B str null C D Syst