今天是學習Groovy的第一天,首先我以爲學習任何一種語言都要先弄清楚這種語言的特性,由於只有瞭解了特性以後學習才能達到好的效果,那麼groovy的特色是什麼的。我以爲groovy是一種動態語言,動態主要體如今MOP也就是元對象協議,還有就是groovy也須要運行在jvm上。groovy的學習成本也不高,若是java基礎比較好快速上手是沒問題的,還有一些其餘的特色,你們去查閱資料,此次要分享的是GString以及字符串的操做java
1.groovy的字符串
編程
Java裏有String,Groovy裏新加了GString。Groovy的語法是,若是用單引號括起來的就是String,若是是雙引號括起來的就是GString。因此Groovy不能直接定義原來Java裏的char了。jvm
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/7163138spa
學習groovy還應該清楚,groovy是一種弱類型語言,全部的變量均可以當作對象,規範的寫法是變量以前應該有def修飾而且groovy不強制程序末尾的分號,寫不寫均可以
若是要定義一個字符串能夠這樣寫:.net
def str1="編程語言"
def str2="Groovy"
若是沒有什麼限制的話,寫成單引號也是能夠的。可是要明確一點就是單引號和雙引號是有區別的
def str1="編程語言" def str2="Groovy" println "$str1:$str2" (1) println '$str1:$str2' (2)
輸出:3d
編程語言: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