println 'He said "escaflone"'
println "He said'escaflone'" // 影号中的影号,大中放小,小中放大都可以,类似js
def str1 ="Groovy&Grails&clat"
println str1[4] //v,同getAt(4)
println str1[-1] //t
println str1[1..2] //ro
println str1[1..<3] //ro
println str1 == 'Groovy&Grails&clat' // true
println 'clat'<=>'clat' //0
println 'clat'<=>'clat005' //-1
println 'clat'<=>'Clat' //1
println 'clat'.compareTo('Clat') //32
println 'clat'.compareTo('clat') //0
println str1 = 'Groovy' + '&Grails' + '&clat'//Groovy&Grails&clat
println str1-'&clat' //Groovy&Grails
println 'Groovy'*3 //GroovyGroovyGroovy
println "Groovy".compareToIgnoreCase("groovy"); //0
println "Groovy".concat("&Grails"); //Groovy&Grails
println "Groovy".endsWith("ovy"); //true
println "Groovy".equalsIgnoreCase("groovy"); //true
println "Groovy".indexOf('oo'); //2
println "Groovy".substring(2) ; //oovy
println "Groovy".substring(2,4); // oo
def str2 = "Groovy"
println "[${str2.center(11)}]" //[ Groovy ]
println "[${str2.center(3)}]" //[Groovy] 3<字符串长度,原大小输出
println "[${str2.center(11,'=')}]" //[==Groovy===]
println "${str2.contains('Gr')}" //true
println "${str2.count('o')}" //2
println str2.leftShift(' world') // Groovy world
println str2<<' world' // Groovy world
println str2.minus('vy') //Groo
println str2 - 'vy' //Groo
println str2.next() //Groovz ++运算符
println str2.previous() //Groovx --运算符
println "[${str2.padLeft(4)}]" //[Groovy]
println "[${str2.padLeft(11)}]" //[ Groovy]
println "[${str2.padLeft(11,'#')}]"//[#####Groovy]
//padRight()类似
def str3 = "clat"
println str3.replaceAll("[a-z]"){ch -> ch.toUpperCase()} //CLAT
println str3.reverse() //talc
println str3.size() //4
println str3.toCharacter() //c
println "123".toDouble() // 123.0 类似还有toFloat()/toInteger()/toLong()
println str3.toList() //[c, l, a, t]
def str4="Groovy&Grails&clat"
println str4.tokenize() //["Groovy&Grails&clat"] 无空格
println str4.split('&') //[Groovy, Grails, clat]
def str5="Groovy Grails clat"
println str5.tokenize() //[Groovy, Grails, clat]
println str5.tokenize().getClass().getName() //java.util.ArrayList