官术网_书友最值得收藏!

5.4 基本表達式

基本表達式描述的是簡單的程序邏輯。例如,定義了一個數字1,則字面表達式解析后的內容就是1。同樣,也可以通過表達式實現關系運算、邏輯運算以及三目運算處理。

5.4.1 字面表達式

字面表達式指的是直接在字符串中定義字符串或基本數據類型(數字、布爾、字符),通過字面表達式可以直接看到數據本身的內容。如表5-1所示為常見字面表達式的使用。

表5-1 字面表達式

范例:【mldnspring-base模塊】處理科學計數法。

本程序采用了科學計數法實現了表達式的定義,隨后為了方便顯示內容,使用了printf格式化顯示。

5.4.2 數學表達式

數學表達式描述的是基本的加、減、乘、除等計算處理,如表5-2所示。

表5-2 數學表達式

5.4.3 關系表達式

在定義關系表達式時,除了可以判斷大小與相等關系外,還可以實現范圍的判斷,如表5-3所示。

表5-3 關系表達式

5.4.4 邏輯表達式

邏輯判斷主要有3個處理邏輯:與、或、非。利用邏輯表達式可以連接多個關系表達式,如表5-4所示給出了一些常見邏輯表達式的使用。

表5-4 邏輯表達式

在表5-4中,由于非操作是在整體邏輯計算之后進行處理的,所以使用“( )”改變了計算的優先級。

5.4.5 三目運算操作

三目運算符(?:)組成的表達式是一種基于判斷的賦值表達式,不僅在開發中廣泛使用,在SpEL中也同樣支持。基本的三目運算操作如表5-5所示。

表5-5 三目運算操作

范例:【mldnspring-base模塊】利用三目運算符構建一個基礎的三目運算操作。

本程序利用三目運算符實現了判斷與賦值處理,其基本的流程與程序區別不大。SpEL中除了這種三目運算符之外,還從Groovy語言引入了用于簡化的三目運算符——Elivis運算符。其基本結構為“表達式1?:表達式2”,當表達式1為非null時,返回表達式1;當表達式1為null時,返回表達式2。

范例:【mldnspring-base模塊】使用Elivis運算符。

5.4.6 字符串處理表達式

在SpEL中,最大的特點是可以直接通過表達式的描述實現類中方法的調用,下面將通過字符串的操作進行演示。

范例:【mldnspring-base模塊】進行字符串的指定字符獲取(charAt)。

在SpEL中通過索引訪問,可以代替String類中的charAt方法的使用。

范例:【mldnspring-base模塊】實現字符串的大寫轉換。

范例:【mldnspring-base模塊】字符串替換。

通過程序可以發現,在定義字符串方法調用時,可以直接采用代碼鏈的形式實現方法的調用。對于開發者而言,只是在編寫一個簡單的字符串。

5.4.7 正則匹配運算

正則在程序開發中有著重要的地位,利用正則可以方便地實現數據的匹配與字符串的相應操作。在SpEL中同樣支持正則運算功能。

范例:【mldnspring-base模塊】使用正則進行驗證。

主站蜘蛛池模板: 江安县| 大洼县| 遂川县| 海口市| 仪陇县| 高邑县| 麻城市| 久治县| 洛扎县| 廉江市| 饶平县| 池州市| 乌兰浩特市| 筠连县| 西青区| 防城港市| 左云县| 阳原县| 兰考县| 怀宁县| 阜康市| 团风县| 波密县| 东明县| 辽中县| 邵阳县| 老河口市| 长子县| 长乐市| 凭祥市| 大埔区| 塔河县| 仁寿县| 永宁县| 扶风县| 博乐市| 巴里| 佛冈县| 廉江市| 临高县| 枝江市|