1

我有一个包含航班号和登机口号的 java 对象列表:

public class Flight {
  public String flightNumber;
  public String gateNumber;
}

出于这个问题的目的,我的列表包含具有以下航班号和登机口号码的对象:

"AA123"  "10"
"BB789"  "11"
"BB124"  "10"
"AA456"  "12"

我知道如果我想在 10 号门选择所有对象,我可以使用以下 JXPath 表达式(有效):

.[gateNumber = "10"]

我需要做的是在 10 号登机口选择航班号以“AA”开头的所有对象。

我尝试了以下方法,但它们都不起作用:

.[gateNumber = "10" and flightNumber.startsWith("AA")]
.[gateNumber = "10" and flightNumber.substring(0, 2) = "AA"]
.[gateNumber = "10" and substring(flightNumber, 0, 2) = "AA"]
.[gateNumber = "10" and substring($flightNumber, 0, 2) = "AA"]

我的 JXPath 表达式应该是什么?甚至可以不编写自定义扩展吗?

4

1 回答 1

1

我找不到使用本机 JXPath 的方法,所以最后我不得不开发一个扩展,如果第一个字符串参数的内容以第二个字符串参数的内容开头,则返回 true:

.[gateNumber = "10" and utils:startsWith(flightNumber, "AA")]

编辑

我还没有尝试过,但显然 JXPath 支持starts-with()来自 XPath 的功能。

于 2015-08-07T02:15:37.903 回答