※String 方法
package script String x = 'xyz'; String r1 = x.charAt(1) String r2 = x[1..2] println x // xyz println r1 // y println r2 // yz String c = x.center(6, '?') // 沒有第二個參數,預設是空格 println x // xyz println c // ?xyz?? String p = x.padLeft(6, '?') println x // xyz println p // ???xyz println 'abc' println 'abc' > 'abd' // 前二個一樣,第三個 ascii 99 > 100 嗎? false println 'axbxc'.minus('x') // abxc println 'axbxc' - 'x' // abxc println 'axbxc'.plus('x') // axbxcx println 'axbxc' + 'x' // axbxcx println 'abc'.reverse() // 從後往前讀,cba println 'abc'.capitalize() // 首字母大寫,Abc println 'ABC'.uncapitalize() // 首字母小寫,aBC println ''.isBlank() // true println ' '.isBlank() // true println ''.isEmpty() // true println ' '.isEmpty() // false println Integer.MAX_VALUE // 2147483647 println '2147483648'.isInteger() // false println '2147483648'.isLong() // true println '2147483648'.isFloat() // true println '2147483648'.isDouble() // true println '2147483648'.isBigInteger() // true println '2147483648'.isNumber() // 會呼叫 isBigDecimal(),true println '2147483648'.isBigDecimal() // true // 沒有 isByte isShort isCharacter isBoolean println '2147483647'.toInteger() // 超過會報錯 // 沒有 toByte
※
※if
if(new ArrayList<>()) { println 'true' } else { // 0、0.0、null、''、new空物件、 println 'false' }
※java 一定要是 boolean 才可以
※不支援範圍操作
int i = 59 if(i == 1..59) { println '不及格' } else { println '及格' // 永遠都是及格 }
※
※switch
Integer a = 7 switch (a){ case 7: println 'a' break case '7': println 'b' break case Number.class: println 'c' break case Integer.class: println 'd' break default: println 'e' }
※java 的 switch 型別要全部一樣才可以,且只能是 char 和 int,java 7 又多個 String
※a b c d 都會被呼叫到,看誰寫前面就先印
※
def list = [1,2,3] switch (list){ case ArrayList: println 'a' break case [1,2,3]: // 相當於是 new,不可能進來 println 'b' break case List.class: println 'c' break default: println 'd' }
※switch 可以放其他東西,可以有類似 instanceof 的寫法
※支援範圍操作
def i = 61 switch (i){ case 0..59: println '不及格' break case 60..100: println '及格' break default: println '超過範圍' }
※
※迴圈
def sum = 0 for (def i in 1..10) { // in 寫「:」也行 sum += i } println sum
※
※
for (def m : [a: 1, b: 2, c: 3]) { // in 寫「:」也行 print "${m.key} " println m.value }
※List 、Set 就直接拿來用,而 Map,使用內鍵的 key 和 value 即可
沒有留言:
張貼留言