我是靠谱客的博主 乐观铅笔,最近开发中收集的这篇文章主要介绍Groory(二) 字符串String+集合Collection篇---极速入门总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述


一、字符串常用用法

<pre class="java" name="code">/**
 * 这里只总结一些与java不同的的用法,但是又比较常用的API
 */
/**
 *  "  '  ' "的用法
 */
String c = "'Hello Triple" + "Multiple lines'";//print 'Hello TripleMultiple lines'						/**
 *索引用法
 */
String sample = "Hello world";
println(sample[4]); // Print the 5 character in the string :o

//Print the 1st character in the string starting from the back
println(sample[-1]);// print d
println(sample[1..2]);//Prints a string starting from Index 1 to 2: el
println(sample[4..2]);//Prints a string starting from Index 4 back to 2 : oll							/**
 * 字符串连接
 */
String a = "Hello";
String b = "World";
println(a + b); //print HelloWorld
println( a.concat(b))//print HelloWorld

/**
 * 在一个字符串内匹配正则表达式
 */
String s = "He5lloW2or3ld";
s.eachMatch("\d") {
    ch -> println ch //print 5,2,3
}
 a = "Hello World";
println(a.matches("Hello")); //false
println(a.matches("Hello(.*)"));//true

 

二、集合用法

Groovy支持最常见的两个java集合:java.util.Collection和java.util.Map。前面所说的范围实际也是集合的一种(java.util.List)。

2.1   基本Collection 特性

Groovy 中这样来定义一个Collection:

def collect=["a","b","c"]

除了声明时往集合中添加元素外,还可以用以下方式向集合中添加元素:
collect.add(1);
collect<<"come on";
collect[collect.size()]=100.0

Collection使用类似数组下标的方式进行检索:
println collect[collect.size()-1]
println collect[5]

groovy支持负索引:
println collect[-1]      //索引其倒数第1个元素
println collect[-2]      //索引其倒数第2个元素


Collection支持集合运算:
collect=collect+5        //在集合中添加元素5
println collect[collect.size()-1]
collect=collect-'a'         //在集合中减去元素a(第1个)
println collect[0]          //现在第1个元素变成b了


同样地,你可以往集合中添加另一个集合或删除一个集合:
collect=collect-collect[0..4]   //把集合中的前5个元素去掉
println collect[0]   //现在集合中仅有一个元素,即原来的最后一个元素
println collect[-1]  //也可以用负索引,证明最后一个元素就是第一个元素



2-2 List 集合用法总结:

/**
 * Created by Administrator on 2016/8/5.
 */
//join方法
def array=[1989,12,25]
println array.join("-")  //1989-12-25
println array[1,2].join("-") //12-25
//list的减法
println array-[25]       //12-25
//去除重复元素
def arr1=[1,2,3,4,4,5,6,6,7]
print arr1.unique() //   [1, 2, 3, 4, 5, 6, 7]
//求交集
def arr2=["北京","上海"]
def arr3=["上海","宁波"]
println arr2.intersect(arr3) //[上海]
//集合反转
println arr3.reverse() //[宁波, 上海]

//list排序
def arr4=[8,6,5,1,9,3]
println arr4.sort()  //[1, 3, 5, 6, 8, 9]

//list打乱元素顺序
println arr4.sort{
    Math.random()
}     //[6, 8, 1, 9, 3, 5]

//取得对应元素的索引
println arr1.indexOf(5) // 4

//list求和
println arr4.sum()  //32

//取出最大值和最小值
println arr4.max()  //9

//元素筛选
def arr5=[3,8,9,10,5,6]
println arr5.grep{
    it>6
}     // [8, 9, 10]


2-3 Map基本特性

Map是“键-值”对的集合,在groovy中,键不一定是String,可以是任何对象(实际上Groovy中的Map就是java.util.Linke dHashMap)。

如此可以定义一个Map:

def map=['name':'john','age':14,'sex':'boy']

常用操作

/**
 * 定义
 */
map = ['name':'Bruce', 'age':27]
/**
 * 键被解释成字符串:
 */
def x = 3
def y = 5
def map = [x:y, y:x] //Result: ["x":5, "y":3]
/**
 * 变量的值作为键
 */
def city = 'shanghai'
map."${city}" = 'china'
map.shanghai //Result: "china"


2-4 List 和Map集合结合闭包的常用操作

/**
 * -----------List 和 Map一些公用方法(inject和reverseEach方法只适合List)------------------
 */
/*
each             void each(Closure clos)迭代集合中每个元素。
find             List find(Closure clos)返回集合中第一个符合条件的元素。
findAll          List findAll(Closure clos)返回集合中所有符合条件的元素。
collect          List collect(Closure clos)返回计算后的列表。
collect          List collect(Collection col, Closure clos)返回计算后的列表,同时把返回值保存到col集合里。
any              boolean any(Closure clos)集合中有一个符合条件即返回true,否则返回false。
every            boolean every(Closure clos)集合中所有都符合条件即返回true,否则返回false。
findIndexOf      int findIndexOf(Closure clos)返回第一个符合条件元素在集合中的索引值(从0开始计算)。
findLastIndexOf  int findLastIndexOf(Closure clos)返回最后一个符合条件元素在集合中的索引值(从0开始计算)。
inject           Object inject(Object value, Closure clos)返回调用列表和参数的计算值。
[1,2,3,4].inject(5) {x,y->
    x + y
}
//Result: 15
reverseEach      void reverseEach(Closure clos)反响迭代集合中每个元素。
[1,2,3,4].reverseEach {x->
    print x + '-'
}
//4-3-2-1-
sort             List sort(Closure clos)按照闭包的返回条件排序。
*/






最后

以上就是乐观铅笔为你收集整理的Groory(二) 字符串String+集合Collection篇---极速入门总结的全部内容,希望文章能够帮你解决Groory(二) 字符串String+集合Collection篇---极速入门总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部