程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Groovy >> Groovy探索:對字符串編寫Groovy風格的代碼

Groovy探索:對字符串編寫Groovy風格的代碼

編輯:Groovy

本篇用來說說在處理字符串的時候的一些Groovy風格的代碼,這裡所說的Groovy風格的代碼,主要是區別於Java語言的編碼風格。

首先,我們還是要定義一個String對象,來用作我們的例子:

def str = "hello"

現在,我們要說的是取子串的風格。

在Java語言中,我們要取下標為1和2處的子串,就必須使用如下所示的"substring"方法:

println str.substring(1,3)

而我們在Groovy語言中,就只需如下編碼:

println str[1..2]

運行的結果為:

el

接著,我們想獲取從下標1開始,到倒數第二位的子串,在Java語言中,我們必須如下編碼:

println str.substring(1,str.length()-1)

但是,Groovy語言風格的代碼卻是如下形式的:

println str[1..-2]

運行結果為:

ell

以上的編碼風格將是在Groovy語言中我們處理字符串的基礎。下面的編碼風格的代碼都是從這裡開始的。

現在,我們來模擬在Java語言中,我們使用反射技術的時候,經常需要通過從知道的JavaBean的一個屬性名獲取該屬性的"set"和"get"方法:

def propName = "email"

def firstSetFunctionName = "set"+propName.substring(0,1).toUpperCase()

def nextSetFunctionName = propName.substring(1,propName.length())

def setFunctionName = firstSetFunctionName+nextSetFunctionName

def firstGetFunctionName = "get"+propName.substring(0,1).toUpperCase()

def nextGetFunctionName = propName.substring(1,propName.length())

def getFunctionName = firstGetFunctionName+nextGetFunctionName

println setFunctionName

println getFunctionName

而我們的Groovy風格的代碼卻是形如下面的樣子:

def setFunctionName = 'set'+propName[0].toUpperCase()+propName[1..-1]

def getFunctionName = 'get'+propName[0].toUpperCase()+propName[1..-1]

println setFunctionName

println getFunctionName

運行的結果為:

setEmail
getEmail

現在,我們有如下的一個句子:

def str1 = 'hello world it is a groovy world'

我們希望把這個句子的所有單詞的首字母變為大寫,在Java語言中個編碼風格應該是下面的這個樣子:

def list = str1.split(' ')

def result = ''

list.each{
if(it.size()>1)
{
def firstStr = it.substring(0,1).toUpperCase()
def nextStr = it.substring(1,it.size())

result = result+firstStr+nextStr
}
else
{
result = result+it.toUpperCase()
}

result = result+' '
}

println result

而我們的Groovy語言風格的代碼卻是如下的樣子:

def str2 = str1.split(' ').collect{
it[0].toUpperCase()+(it.size()>1?it[1..-1]:'')
}.join(' ')

println str2

運行的結果為:

Hello World It Is A Groovy World

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved