Groovy支持創建一個StringBuilder/StringBuffer的,而不是通常Groovy的字面的StringBuilder/StringBuffer的
def sb = new StringBuilder()
的。然而文字語法,我似乎無法記住(或找到谷歌)正確的語法。
Groovy支持創建一個StringBuilder/StringBuffer的,而不是通常Groovy的字面的StringBuilder/StringBuffer的
def sb = new StringBuilder()
的。然而文字語法,我似乎無法記住(或找到谷歌)正確的語法。
要在一個單一的步驟得到一個StringBuffer,你可以使用
def sb = 'Hello'<<''
或甚至:
def sb = ''<<'' //4 single quotes, not double quotes
最初爲空的。
我認爲(但我可能是錯的)使用StringBuffer而不是StringBuilder的原因是爲了保持與Java 1.4的兼容性。
如果您需要安全地連接字符串,您還可以在當前的Java版本中使用'StringBuffer' – 2016-01-20 12:28:03
只有當使用'<< ='操作符時,看起來該文本才從String轉換爲StringBuilder,是否正確? 另外,它實際上是一個StringBuffer而不是一個StringBuilder – 2009-11-25 15:20:38
是的,實際上我的例子可能過於簡單。您需要轉換並重新分配給StringBuffer,例如'<< ='運算符。稍後你可以使用'<<'。同樣,你對'StringBuffer'也是正確的,這就是他們如何使用'[]'操作符允許就地字符替換。 – omerkudat 2009-11-25 15:30:24
我剛剛在Groovy中玩過StringBuilder/StringBuffer。
下面的一些例子:
// << operator example
def year = StringBuilder.newInstance()
year << 2
year << "0"
year << '1' << 4
assert year.toString() == "2014"
// You can use with operator
def month = StringBuilder.newInstance()
month.with {
append "0"
append '5'
}
assert month.toString() == "05"
// or just append String like in Java or you can leave parenthesis
def day = StringBuilder.newInstance()
day.append "1"
day.append('1')
assert day.toString() == '11'
// It's nice to know, that we can use StringBuilder directly in GString
def date = "$year-${month}-$day"
assert date == "2014-05-11"
注: 使用StringBuilder當一個線程才能使用。 StringBuilder提供了一個與StringBuffer兼容的API。 StringBuffer是同步的,StringBuilder不是。點擊此處link瞭解更多信息。
'sb.append(「text」)'將會連接你的字符串 – IgniteCoders 2016-01-19 15:23:43