今天是学习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.lxhclass 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

GString及IntelliJIdea中调试Groovy的操作步骤相关推荐

  1. QT调试的详细操作步骤

    QT调试的详细操作步骤(配案例) QT版本:5.8.0 一.断点调试 二.单步调试 三.用qDebug()调试. 参考文献: QT版本:5.8.0 一.断点调试 QT提供了一个很有用的调试方式:断点调 ...

  2. 批量修改文件名中的一部分,操作步骤

    如何批量修改文件名中的一部分?在工作中我们经常需要对文件做各种操作,其中有一种是批量重命名,顾名思义,批量重命名就是一次性对大量文件修改名称的意思,批量修改文件名可以帮助我们节省大量的时间,否则一个一 ...

  3. 在eclipse中安装groovy插件详细步骤

    为了方便,将groovy插件集成到eclipse中使用,安装步骤如下: step 1:检查自己的eclipse版本:在help->About Eclipse中查看: step 2:进入 http ...

  4. 请描述显示计算机中所有隐藏文件的操作步骤,如何设置隐藏/显示文件或文件夹...

    腾讯视频/爱奇艺/优酷/外卖 充值4折起 1.隐藏文件或文件夹 如果不希望某些文件夹或文件被别人看到,可以将它们隐藏起来!下面是具体操作方法. 步骤1:在"我的电脑"窗口中右击文件 ...

  5. Android中调用.so库操作步骤

    参考:http://www.cnblogs.com/anyanran/archive/2010/11/22/ndk1.html http://www.cnblogs.com/sevenyuan/p/4 ...

  6. 在Vue2.x项目中使用Vant的操作步骤

    在新项目中使用 Vant 时,推荐使用 Vue 官方提供的脚手架 Vue Cli 创建项目并安装 Vant. 1.首先安装Vue Cli,也可以使用淘宝镜像下载. npm install -g @vu ...

  7. cad放大_CAD图纸中局部放大图形的操作技巧

    在使用CAD软件绘制CAD图纸的过程中,不管是机械图纸还是水暖电,局部详图对于表现细节很重要,CAD图纸中对细节放大是很重要的操作,那么具体该如何操作呢?接下来给大家详细介绍一下CAD图纸中局部放大图 ...

  8. CAD图纸中局部放大图形的操作技巧

    在使用浩辰CAD软件绘制CAD图纸的过程中,不管是机械图纸还是水暖电,局部详图对于表现细节很重要,CAD图纸中对细节放大是很重要的操作,那么具体该如何操作呢?接下来给大家详细介绍一下CAD图纸中局部放 ...

  9. 怎么编辑gif动态图片?gif动图编辑的操作步骤

    通常GIF动态图片是无法直接进行编辑的,这时候我们就要用到gif动图编辑(https://www.gif.cn/tools/cut)工具,下面我们以gif裁剪为例子,通过GIF中文网的gif裁剪工具来 ...

最新文章

  1. 广东海洋大学数学与计算机学院校友会,数学与计算机学院召开2020级研究生入学教育会...
  2. 2020 AI前沿交流大会 | 聚焦CV/NLP最新学术及工业界实践
  3. vue启动时报错,node-modules下xxx缺失
  4. 记一次configuration wizard运行失败
  5. insert into value与insert into select from dual
  6. python虚拟环境-conda
  7. Javascript 面向对象编程初探(一)--- 封装
  8. 大数据最核心的关键技术——32个算法,记得收藏!
  9. 一文贯通python文件读取 1
  10. 2021-10-28 SAP Spartacus SSR 性能方面的一些学习笔记
  11. 将Java应用程序本地编译为EXE的几种方法
  12. Linux编辑firmware的文件,Linux中request_firmware 的用法
  13. ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
  14. java求第几位数字_怎么得到一个数的第n位数字 急求大神帮助
  15. 计算机网络习题集_主打选择填空
  16. 通信信道带宽为1Gbit/s,端到端时延为10ms。TCP的发送窗口为65535字节。试问: 可能达到的最大吞吐量是多少?信道的利用率是多少?
  17. [leetcode]934. Shortest Bridge
  18. Flash应用之百宝箱
  19. 群晖emby服务端下载(弃坑,官网已经能顺畅访问)
  20. Java swing 界面开发 - 登录界面- 2021-11-10

热门文章

  1. 新零售模式开启,2018杭州无人店展览会
  2. ByteArrayOutputStream
  3. [CPyUG] Instagram被收购了一细看,python味很重的说。 - maolingzhi@gmail.com - Gmail
  4. Silverlight学习之——事件编程
  5. 五一减肥狂掉肉饮食法
  6. Linux shell运行py文件提示command not found
  7. [SDOI2008]Sandy的卡片
  8. 20155335俞昆 2017-2018-1 《信息安全系统设计》第9周学习总结
  9. 洛谷 P1343 地震逃生
  10. U3D 飞机大战(MVC模式)解析--面向对象编程思想