文章目录

  • 一、字符串注入函数
    • 1、字符串转布尔值 asBoolean 函数
    • 2、执行字符串对应命令 execute 函数
    • 3、字符串减法 minus 函数
  • 二、完整代码示例

一、字符串注入函数


Groovy 为 字符串 类 , 注入了一系列的方法 , 下面介绍几个重要的注入方法 ; 为 Groovy 字符串扩展的函数 , 都定义在

public class StringGroovyMethods extends DefaultGroovyMethodsSupport

类中 ;

1、字符串转布尔值 asBoolean 函数

将字符串转为布尔值函数 :

  • 字符串长度为 0 , 则返回 false ;
  • 字符串长度大于 0 , 返回 true ;
"".asBoolean();

注入的 asBoolean 函数 :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport {/*** 将字符串(CharSequence的实例)强制为布尔值。* 如果字符串的长度为0,则该字符串强制为false,* 反之亦然。* * @param 字符串指定字符序列* @返回布尔值* @从1.7开始。0*/public static boolean asBoolean(CharSequence string) {return string.length() > 0;}
}

执行如下代码 :

class Test {static void main(args) {println "".asBoolean();}
}

执行结果 :

false

2、执行字符串对应命令 execute 函数

调用字符串的 execute() 方法 , 可以执行该 字符串命令 , 前提是该字符串必须是系统命令 , 不能是任意字符串 ;

注入 execute() 函数 :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport {/*** 将<code>self</code>指定的命令作为命令行进程执行。* <p>对于过程构造的更多控制,您可以使用* <code>java。lang.ProcessBuilder</code>。* * @param self 命令行字符串* @返回此命令行表示刚刚启动的进程* @在发生IOException时抛出IOException。* @自1.0以来*/public static Process execute(final String self) throws IOException {return Runtime.getRuntime().exec(self);}
}

执行如下代码 :

class Test {static void main(args) {println "cmd /c groovy -v".execute().text}
}

执行结果 :

Groovy Version: 3.0.9 JVM: 1.8.0_91 Vendor: Oracle Corporation OS: Windows 10

3、字符串减法 minus 函数

两个字符串之间进行减法操作 , 相当于从大的字符串中 , 删除被减去的小的字符串 ;

注入 minus() 函数 :

public class StringGroovyMethods extends DefaultGroovyMethodsSupport {/*** 移除字符串的一部分。这将替换第一个事件* 目标。将self中的toString()与“”匹配,并返回结果。* * @param self 字符串* @param target 表示要移除的零件的对象* @返回一个字符串减去要删除的部分* @自1.0以来*/public static String minus(String self, Object target) {String text = DefaultGroovyMethods.toString(target);int index = self.indexOf(text);if (index == -1) return self;int end = index + text.length();if (self.length() > end) {return self.substring(0, index) + self.substring(end);}return self.substring(0, index);}
}

代码示例 :

class Test {static void main(args) {println "HelloWorld" - "World"}
}

执行结果 :

Hello

二、完整代码示例


完整代码示例 :

class Test {static void main(args) {println "".asBoolean();println "cmd /c groovy -v".execute().textprintln "HelloWorld" - "World"}
}

执行结果 :

false
Groovy Version: 3.0.9 JVM: 1.8.0_91 Vendor: Oracle Corporation OS: Windows 10Hello

【Groovy】字符串 ( 字符串注入函数 | asBoolean | execute | minus )相关推荐

  1. 字符串转整数函数stoi()实现

    编程题目: 实现字符串转整数函数,类似标准库函数中的stoi() 题目考核点是规范的编程习惯.我们得有一种编程信念:编写的函数不仅要实现指定的功能,还得能处理各种异常情况.所以,先罗列出所有的异常可能 ...

  2. php返回第一个字符串的码点_PHP 字符串编码截取函数

    一个效率更高的全半角字符串截取函数 [原创,转载请注明:[url]http://wfyang.blog.51cto.com[/url]]现在流传的那几个字符串截取函数,一般都是对字符串进行循环判断,如 ...

  3. PHP源代码分析-字符串搜索系列函数实现详解

    今天和同事在讨论关键字过虑的算法实现,前几天刚看过布隆过滤算法,于是就想起我们公司内部的查找关键字程序,好奇是怎么实现的.于是查找了一下源代码,原来可以简单地用stripos函数查找, stripos ...

  4. smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty。...

    smarty_modifier_truncate,无或者有md_substr的情况下都能正确截取字符串的php函数,可用于smarty. function smarty_modifier_trunca ...

  5. R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串、str_remove_all函数删除所有模式匹配的字符串

    R语言使用str_remove函数和str_remove_all函数删除模式匹配的字符串:str_remove函数删除第一个模式匹配的字符串.str_remove_all函数删除所有模式匹配的字符串 ...

  6. R语言str_subset函数和str_which函数:str_subset函数提取字符串向量中所有包含匹配字符的字符串、str_which函数返回字符串向量中所有包含匹配字符的位置(索引)

    R语言str_subset函数和str_which函数:str_subset函数提取字符串向量中所有包含匹配字符的字符串.str_which函数返回字符串向量中所有包含匹配字符的位置(索引) 目录

  7. R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串、str_replace_all函数替换所有匹配到的

    R语言使用str_replace函数和str_replace_all函数替换字符串中匹配到的模式:str_replace函数替换第一个匹配到的字符串.str_replace_all函数替换所有匹配到的 ...

  8. c语言字符串作为函数返回值的类型,返回字符串类型的函数怎么写?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 描述 请判断一个数是不是水仙花数. 其中水仙花数定义各个位数立方和等于它本身的三位数. 输入 有多组测试数据,每组测试数据以包含一个整数n(100< ...

  9. 拆分字符串的表值函数

    1--拆分字符串的表值函数  2  3alter Function f_Split  4(  5    @Str Nvarchar(max)  6)Returns @Re Table  7(  8   ...

最新文章

  1. 人工智能之神经网络要进入的下一个阶段-演绎推理
  2. 【JavaScript脚本】——T2事件操作
  3. React Native在Android当中实践(五)——常见问题
  4. 使用Java和Google GSON解析ESPN API
  5. 逆向行驶!数据结构双向链表DoubleLinkedList,Java实现增删改查
  6. pycharm同步代码到远程服务器
  7. 物联网哪个市场有可能诞生新一轮BAT?
  8. 【opencv】左右两张图片实现全景拼接
  9. 位姿矩阵求逆 (搬运)
  10. php pdo insertid,php-在PDO准备好的语句内使用LAST_INSERT_ID插入...
  11. hi35xx stmmac网卡驱动源码解读
  12. Visio使用技巧之默认字体大小更改
  13. 【转载】acrobat 9安装教程
  14. Si5395/94/92时钟芯片配置步骤
  15. python循环速度提高_提高python中for循环的速度
  16. 存储容量扩展的设计仿真实验
  17. php(thinkphp5)+ajax 实现电商优惠满减以及不满足条件需要邮费
  18. 程序员文史综合题目(附答案)【转】
  19. 微信小程序拼团进度,显示当前刻度,未到刻度点时显示在中间
  20. 如何在iOS 6 时代的App Store中推广

热门文章

  1. android 获取应用的当前版本号获取当前android系统的版本号
  2. 学习Unix/Linux编程要学些什么
  3. 石川es6课程---11、json
  4. Java核心知识点 --- 线程中如何创建锁和使用锁 Lock , 设计一个缓存系统
  5. And it's over,And it's a new start
  6. codevs地鼠游戏(贪心)
  7. jni java c++ 参数传递问题解决
  8. 【FAQ】使用 LOAD 載入外部中文字檔 *.TXT, 中文字卻成為亂碼之解決
  9. [导入]使用RDLC报表(二)--使用自定义数据集
  10. 线性回归——lasso回归和岭回归(ridge regression)