code related to concatenate strings in Groovy (#6277)
This commit is contained in:
parent
6b83fcde01
commit
93a448258c
@ -0,0 +1,43 @@
|
|||||||
|
package com.baeldung.strings;
|
||||||
|
|
||||||
|
class Concatenate {
|
||||||
|
String first = 'Hello'
|
||||||
|
String last = 'Groovy'
|
||||||
|
|
||||||
|
String doSimpleConcat() {
|
||||||
|
return 'My name is ' + first + ' ' + last
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingGString() {
|
||||||
|
return "My name is $first $last"
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingGStringClosures() {
|
||||||
|
return "My name is ${-> first} ${-> last}"
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingStringConcatMethod() {
|
||||||
|
return 'My name is '.concat(first).concat(' ').concat(last)
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingLeftShiftOperator() {
|
||||||
|
return 'My name is ' << first << ' ' << last
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingArrayJoinMethod() {
|
||||||
|
return ['My name is', first, last].join(' ')
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingArrayInjectMethod() {
|
||||||
|
return [first,' ', last]
|
||||||
|
.inject(new StringBuffer('My name is '), { initial, name -> initial.append(name); return initial }).toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingStringBuilder() {
|
||||||
|
return new StringBuilder().append('My name is ').append(first).append(' ').append(last)
|
||||||
|
}
|
||||||
|
|
||||||
|
String doConcatUsingStringBuffer() {
|
||||||
|
return new StringBuffer().append('My name is ').append(first).append(' ').append(last)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,101 @@
|
|||||||
|
import com.baeldung.strings.Concatenate;
|
||||||
|
|
||||||
|
class ConcatenateTest extends GroovyTestCase {
|
||||||
|
|
||||||
|
void testSimpleConcat() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = 'Joe';
|
||||||
|
name.last = 'Smith';
|
||||||
|
def expected = 'My name is Joe Smith'
|
||||||
|
assertToString(name.doSimpleConcat(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingGString() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingGString(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingGStringClosures() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingGStringClosures(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingStringConcatMethod() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingStringConcatMethod(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingLeftShiftOperator() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingLeftShiftOperator(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingArrayJoinMethod() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingArrayJoinMethod(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingArrayInjectMethod() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingArrayInjectMethod(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingStringBuilder() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingStringBuilder(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatUsingStringBuffer() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = "Joe";
|
||||||
|
name.last = "Smith";
|
||||||
|
def expected = "My name is Joe Smith"
|
||||||
|
assertToString(name.doConcatUsingStringBuffer(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testConcatMultilineUsingStringConcatMethod() {
|
||||||
|
def name = new Concatenate()
|
||||||
|
name.first = '''Joe
|
||||||
|
Smith
|
||||||
|
''';
|
||||||
|
name.last = 'Junior';
|
||||||
|
def expected = '''My name is Joe
|
||||||
|
Smith
|
||||||
|
Junior''';
|
||||||
|
assertToString(name.doConcatUsingStringConcatMethod(), expected)
|
||||||
|
}
|
||||||
|
|
||||||
|
void testGStringvsClosure(){
|
||||||
|
def first = "Joe";
|
||||||
|
def last = "Smith";
|
||||||
|
def eagerGString = "My name is $first $last"
|
||||||
|
def lazyGString = "My name is ${-> first} ${-> last}"
|
||||||
|
|
||||||
|
assert eagerGString == "My name is Joe Smith"
|
||||||
|
assert lazyGString == "My name is Joe Smith"
|
||||||
|
first = "David";
|
||||||
|
assert eagerGString == "My name is Joe Smith"
|
||||||
|
assert lazyGString == "My name is David Smith"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user