簡體   English   中英

需要比較兩個作為流口水中的字符串元素列表的字符串

[英]Need to compare two Strings treating as list of String elements in drool

我有一個具有String值的java.util.Map對象。 我需要將java.util.Map的String值之一與myString值進行比較。 以下是帶有值的變量,以更好地理解問題。

myMap[STATE.code]="AK","MI","GA","NY","OH","CA"

myString="MI","OH"

注意:(“ AK”,“ MI”,“ GA”,“ NY”,“ OH”,“ CA”)和(“ MI”,“ OH”)是完整的字符串值,而不是逗號分隔的值。

我需要弄清楚“ AK”,“ MI”,“ GA”,“ NY”,“ OH”,“ CA”中是否存在“ MI”或“ OH”中的任何一個。 因此,我將myString和myMAp [STATE.code]值視為“列表元素”,並嘗試將兩者進行比較。 我嘗試了Collections.disjoint函數以找出列表中是否有任何公共元素。

在DSL中:

[condition][]Putting codes into variable=$code : String(this == myMap[STATE.code]) 

[condition][]Codes exist in list {myString}= Boolean( java.util.Collections.disjoint(java.util.Arrays.asList($code) , java.util.Arrays.asList({myString}) ) == false )

[condition][]Codes doesn't exist in list {myString}= not( Boolean ( java.util.Collections.disjoint(java.util.Arrays.asList($clientCatCode) , java.util.Arrays.asList({myString}) ) == false ))

盡管DSL編譯成功,但是沒有任何決定,也沒有任何異常或錯誤。 似乎這種方法不正確。 誰能建議我任何方法或幫助糾正我的DSL。

如果狀態碼是Map中的Key,我們可以通過檢查map.containsValue(String)來檢查給定的String是否存在於Map中,

如果它是Map值,則可以通過map.containsKey(String);獲得。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM