代码之家  ›  专栏  ›  技术社区  ›  Aavik

Java:带单行if stmt的三元运算符

  •  0
  • Aavik  · 技术社区  · 8 年前

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

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

    我想写一个三元运算符,如下所示:

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

    这个声明是错误的。你能建议如何将三元和if一起使用吗。

    非常感谢。

    1 回复  |  直到 8 年前
        1
  •  2
  •   VHS    8 年前

    尝试

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

    就像你可以有一个嵌套的 if 结构,也可以嵌套三元运算符。