※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 即可
沒有留言:
張貼留言