繁体   English   中英

Java:如果为stmt,则单行三元运算符

[英]Java: ternary operator with single line if stmt

您能帮我编写高效的Java代码吗?

逻辑是:我必须读取文件中的第一个有效记录并生成文件名。 无效/有效记录由该行的前2个字符标识。 无效的记录的前2个字符填充在名为ignoreTrans(作为参数传递)的ArrayList中。

有2种情况:-情况1:文件中的所有记录均有效,在这种情况下,ignoreTrans将为空情况2:文件具有无效的记录,其中传递的参数填充了ignoreTrans。

我想写一个如下的三元运算符:

FileName = ignoreTrans.isEmpty() ? getFileName(pos) : (if (!ignoreTrans.contains(line.substring(0,2))) getFieldName(pos));

该语句有误。 您能否建议如何在if中使用三元。

谢谢,

尝试

FileName = ignoreTrans.isEmpty() ? getFileName(pos) : !ignoreTrans.contains(line.substring(0,2))) ? getFieldName(pos) : "";

就像如何拥有嵌套的if结构一样,您也可以嵌套三元运算符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM