今天是學習Groovy的第一天,首先我覺得學習任何一種語言都要先弄清楚這種語言的特性,因為只有了解了特性之后學習才能達到好的效果,那么groovy的特點是什么的。我覺得groovy是一種動態語言,動態主要體現在MOP也就是元對象協議,還有就是groovy也需要運行在jvm上。groovy的學習成本也不高,如果java基礎比較好快速上手是沒問題的,還有一些其他的特點,大家去查閱資料,這次要分享的是GString以及字符串的操作
1.groovy的字符串
Java里有String,Groovy里新加了GString。Groovy的語法是,如果用單引號括起來的就是String,如果是雙引號括起來的就是GString。所以Groovy不能直接定義原來Java里的char了。
String
String s = 'This is a String'
GString
GString s = "This is a GString"
兩種方式定義出來的實例類型是不一樣的。當然GString不是這么簡單的,GString的強大之處在於它可以作為模板使用
String name = 'count' int value1 = 23 int value2 = 22 GString s = "The value of $name is ${value1+value2}" println s
最終的輸出是: The value of count is 55
倒數第二行,里面有關鍵字符 $, $即代表去引用上下文中的變量值,而${}中間不僅可以引用變量值,還可以加上一些運算,作為一個表達式
最后一行這是把GString轉換成String,再輸出。
String是常量,但是GString是變量,准確的說,在GString中的$僅僅是作為一個模板的占位符存在,GString會保存對那個對象的引用,如果引用的對象值發生改變,GString的值也就跟着改變。
需要注意的是,Map里面String和GString就算最終生成的String值一樣,但是還是當作兩個key存在的。很容易理解,但是很容易犯的錯誤,比如手誤把單引號寫成了雙引號等等都會引起這個錯誤。
http://blog.csdn.net/yanical/article/details/7163138
學習groovy還應該清楚,groovy是一種弱類型語言,所有的變量都可以看成對象,規范的寫法是變量之前應該有def修飾並且groovy不強制程序末尾的分號,寫不寫都可以
如果要定義一個字符串可以這樣寫:
def str1="編程語言"
def str2="Groovy"
如果沒有什么限制的話,寫成單引號也是可以的。但是要明確一點就是單引號和雙引號是有區別的
def str1="編程語言" def str2="Groovy" println "$str1:$str2" (1) println '$str1:$str2' (2)
輸出:
編程語言:Groovy
$str1:$str2
(1)和(2)的輸出結果的區別在於(1)會對$str1和$str2和進行解析輸出“編程語言:Groovy”
(2)則會輸出$str1:$str2
這就是Gstring了,是不是很簡單呢
2.字符串的常用操作
groovy字符串的操作和java里的大體類似,因為有的人可能沒有用過Intellij IDE,這里我順便把創建項目的圖貼出來
(1)選擇File---->New Project
(2)點擊下一步之后看到如下界面,配置好groovy和jdk之后,填寫項目名稱並選擇項目存儲目錄后,點擊完成就OK
如果這個工具不熟練可以自己先學着使用下
最后貼出代碼:
package org.lxh class UseGstring { static main(def args) { //gstring的用法(理解成轉義也成) def str1="編程語言" def str2="Groovy" println "$str1:$str2" println '$str2' //字符串操作函數 def str3="上海市浦東新區軌道交通2號線" def str4="hello world" def str5="你,好" //截取字符串 println str3.substring(0,7) //大小寫轉換 println str4.toUpperCase() //拆分字符串 def split=str5.split(",") for(item in split){ println item } //字符串替換 println str4.replaceAll("world", "Tom") //字符串轉為數字 def str6="28" def str7="2" println str6.toInteger()+str7.toInteger() //字符串的減法 def str8="abcd" println str8-"c" //contains的使用 println str8.contains("c") } }
下面是運行效果:
接下來分享下我用IntelliJ調試的心得
首先在相應行的最前面,單擊一下斷點就打上去了
在控制台可以看到下面這樣的信息
到這里大家應該會調試程序了
http://blog.csdn.net/walkcode/article/details/22953605
IntelliJ Idea 14調試的操作步驟
(1)建Module,寫groovy代碼
(2)配置一個調試groovy代碼的VM
(3)打斷點后,調試Groovy