groovy 字符串截取,groovy string

  groovy 字符串截取,groovy string

  在绝妙的中使用字符串-51至15岁.计算机输出缩微胶片

  在绝妙的中使用字符串奇妙的世界博客我要评论(0) 字号:T T本文介绍了绝妙的的数据类型和控制结构中的字符串太棒了。支持两种类型字符串:一般的爪哇字符串,以及GStrings。本文的例子中详细解释了两种字符串各自的用法公元51年云计算架构师峰会抢票进行中!

  绝妙的支持两种类型字符串:一般的爪哇字符串,它是java.lang.String的实例;和GStrings,它是groovy.lang.GString的实例,并且允许文本中包含占位符GStrings并不是线的子类,因为线类是最终类(最后一堂课)不能被继承。然而,GString与一般的字符串一样,因为绝妙的能将GStrings转型为爪哇字符串。

  GString适用于编写模板代码(模板化),因为您必须动态构建字符串(gstring在需要动态构建字符串的模板化情况下很有用).以下的清单给出了一个例子。

  使用GStrings:

  firstWord=Hello

  secondWord=dlroW

  正在打印$第一个单词$ {第二个单词。reverse()}

  结果如下:

  编译

  GStrings不同于爪哇字符串在于它们允许以${.}的语法嵌入变量。如果一个字符串由双引号或三重引号括起来,并且包含一个非转义符(未转义)$,它必定是groovy.lang.GString的一个实例;否则,就是java.lang.String的一个实例。

  ${.}里可以包含任意有效的绝妙的表达式,包括方法调用或变量名。只有调用GString的转换对象为字符串方法时(例如,把结果输出到控制台),${.}表达式才被求值。

  绝妙的支持的另一种字符串便是java.lang.String。然而,GDK还是动态注入许多帮助方法,使其易于应用。

  以下的例子展示了在绝妙的中声明一个字符串的不同方式:

  S1= Hello world //转义双引号,转义双引号

  s2=你好,世界

  资产1==s2

  S3= Hello \ World \ //Escapesinglequotes,转义单引号

  s4=你好,世界

  资产3==s4

  assertnewString( hello world )== hello world

  defs=[h , e , l , l , o]aschar[]

  assertnewString(s)==hello

  assertnewString(s,0,4)==hell

  s.eachWithIndex{ch,index- assertch==s[index]}

  断言"你好"。toCharArray()==[h , e , l , l , o]

  常用的转义符:

  断言\t==\011//Tab,Tab键

  assert\n==\012//Newline,换行符

  断言 \ r == \ 015 //Carrie return,回车

  断言\n==

   //Spanningmultiplelines,跨越多行

  对象的字符串表示:

  defobject=newObject()

  assertstring。(对象)==对象的值。tostring()//对象

  assertstring。(true)==true的值。tostring()//布尔值

  assertString.valueOf(a)==a .toString()//字符

  assertstring。(1)的值==1。tostring()//数字

  assertString.valueOf([a:1,b:2])==[a:1,b:2].toString()//集合

  字符串长度:

  你好,世界

  asserts.size()==11

  asserts.size()==s.length()

  填充(垫)字符串:

  断言"你好"。padRight(7, *)==Hello**

  断言"你好"。padLeft(7, *)==**Hello

  断言"你好"。center(9, *)==**Hello**

  分解字符串:

  s= quickbrownfoxjumpsoverthelazydog

  asserts.tokenize()==[The , quick , brown , fox , jumps , over , The , lazy , dog]

  资产。token ize()==newstring tokenizer .收集{它}

  s1=快速*棕色*狐狸*跳过*懒惰*狗

  asserts1.tokenize(,*)==s.tokenize()

  查询字符串:

  alphabets=newString(a .zaschar[])

  assertalphabets。find { it f }= g //找到的第一个

  assertalphabets。查找全部{ it f }== g .z//ALlfound

  assertalphabets。findindexof { it f }==字母表。索引( g )

  assertalphabets.every{it A}

  assertalphabets.any{it c}

  assertalphabets。以( ABC )开头

  assertalphabets.endsWith(xyz )

  assertalphabets.contains(def )

  assertalphabets。的索引( c )==2

  assertalphabets。( d )==字母表的索引。lastindexof( d )

  assertalphabets.count(a)==1

  替换字符串:

  你好

  asserts.replace(H , Y)==Yello

  asserts.replace(l , p)==Heppo

  字符串反转:

  镜子

  asserts.reverse()==rorrim

  字符串操作符:

  断言hello world - l = helo world //减法器satmostonel

  断言(今天是星期天-星期日).trim()==今天

  断言hello * 2== hellohello

  defempty=[]

  断言美国广播公司.每个{清空它== abc

  断言美国广播公司.next()==abd

  断言美国广播公司.previous()==abb

  下标操作符:

  断言"你好"[1]=="e "

  断言“你好”[2.]你好. size()-1]==llo

  断言"你好"[0,2,4]=="hlo "

  断言"你好"[-4,-2]=="El "

  字符串比较:

  断言" a "和" b "

  断言“一个”“一个”

  断言a .compareTo(b)==-1

  断言a .comparetignorecase( A )==0

  寻找最大值和最小值:

  Collections.max(abcdeF ).toList())==e

  assertCollections.max(abcdeF ).toList(),字符串 CASE _ INSENSITIVE _ ORDER)= F

  assertCollections.min([abc , abd , abe])==abc

  assertCollections.min([Abc , aBd , abE],字符串. CASE _ INSENSITIVE _ ORDER)= Abc

  字符串缓冲器和StringBuilders是可变的,允许字符串改变StringBuilder不是线程安全的,因此处理速度要比字符串缓冲器快。

  defsb=new string buffer( hello world )

  assertsb。tostring()== hello world

  某人长度=5

  assertsb.toString()==你好

  assertsb.substring(0,2)==He

  //使用,追加(字符串)或左移(字符串)到appendtoastringbuffer .

  //使用toappendtoastringbufferwillreturnstring

  sb=newStringBuffer(Hello )

  Java中的assertsb“World”。郎。线

  Java中的assertsb“World”。郎。字符串缓冲区

  assertsb。tostring()==( hello world )

  assertsb.append(,Groovyrocks ).toString()==HelloWorld,Groovyrocks

  assertsb.leftShift(."不是吗,").toString()==HelloWorld,Groovyrocks .不是吗?

  您也可以对字符串缓冲器或StringBuilder使用下标,如:

  sb=newStringBuffer(abcdefg )

  assertsb[0]==a

  资产b[2.4]==cde

  断言b[0].class==String

  资产b[-6].-4]==bcd

  sb[0].2]=xyz

  assertsb.toString()==xyzdefg

  操作字符串缓冲区:

  sb=new string buffer( StringBuffersaremutable )

  某人(somebody的简写)删除(某人)。的索引(是可变的),sb.size())

  assertsb。tostring()==字符串缓冲区

  sb.insert(sb.size(), aremutable )

  assertsb。tostring()== StringBuffersaremutable

  某人(somebody的简写)取代(某人)。“字符串缓冲区”的索引.size(), StringBuilders )

  assertsb。tostring()== StringBuildersaremutable

  defstring=newString(sb)

  定义字符串2=字符串。全部替换(“字符串生成器”、“字符串缓冲区”)

  assertstring 2== StringBuffersaremutable

  正如您看到的,GDK在java.lang.String和java.lang.StringBuilder基础上添加了很多实用的方法。前面的例子只讨论部分方法,因此推荐您查看线的应用程序接口文档,http://groovy.codehaus.org/groovy-jdk/java/lang/String.html;StringBuffer,http://groovy。科德豪斯。JDK/Java/lang/string buffer。htmlStringBuilder,http://groovy。科德豪斯。org/groovy-JDK/Java/lang/StringBuilder。html。

  在绝妙的中使用字符串时,需要注意以下几点:

  与爪哇一样太棒了中的字符串也是不可变的(即只读的)。欲改变字符串值需使用字符串缓冲器或StringBuilder。

  绝妙的中,如果字符串如果由单引号括起来,或者由双引号或三重引号括起来但没有非转义的美元符号($),那么该字符串是java.lang.String的一个实例。您可使用爪哇岛开发工具包中任意字符串方法。另外,GDK动态注入额外的实用方法到线类。

  由于绝妙的会自动转型为线类,您可以在任何时候使用GStrings。

  字符串可被单引号,双引号或者三重引号括起来。其中,三重引号可直接跨越数行并且输出中仍包含回车符、制表符和空格符。

  绝妙的使用大小方法来查询一个字符串,字符串缓冲区或StringBuilder的长度,与查询一个集合的长度相统一。

  某些字符串方法接受闭包,它明确说明需要满足的条件,例如,查找,查找所有,查找索引的,每和任何。这些方法都是由金东康动态注入到java.lang.Object中的。

  您可以使用收集,每个或者eachwithinindex方法遍历字符串,而且这些方法也属于java.lang.Object的一部分。

  您可以在字符串上使用运算符。运算符“”完成字符串联接;"-"最多删除右操作数的一个实例;" * "根据给定的数字复制字符串;实现下一个字符串的最后一个字节递增;Previous实现要递减的字符串的最后一个字节。

  可以对Strings、StringBuffers和StringBuilders使用下标操作符,也可以在下标操作符中使用范围和负索引(即索引可以是负的,从右开始计数)。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: