Types of string in groovy (#6287)
This commit is contained in:
parent
e2f3d605f0
commit
c957ceaeba
@ -0,0 +1,19 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class CharacterInGroovy {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'character'() {
|
||||||
|
char a = 'A' as char
|
||||||
|
char b = 'B' as char
|
||||||
|
char c = (char) 'C'
|
||||||
|
|
||||||
|
Assert.assertTrue(a instanceof Character)
|
||||||
|
Assert.assertTrue(b instanceof Character)
|
||||||
|
Assert.assertTrue(c instanceof Character)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class DollarSlashyString {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'dollar slashy string'() {
|
||||||
|
def name = "John"
|
||||||
|
|
||||||
|
def dollarSlashy = $/
|
||||||
|
Hello $name!,
|
||||||
|
|
||||||
|
I can show you $ sign or escaped dollar sign: $$
|
||||||
|
Both slashes works: \ or /, but we can still escape it: $/
|
||||||
|
|
||||||
|
We have to escape opening and closing delimiter:
|
||||||
|
- $$$/
|
||||||
|
- $/$$
|
||||||
|
/$
|
||||||
|
|
||||||
|
print(dollarSlashy)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class DoubleQuotedString {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'escape double quoted string'() {
|
||||||
|
def example = "Hello \"world\"!"
|
||||||
|
|
||||||
|
println(example)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'String ang GString'() {
|
||||||
|
def string = "example"
|
||||||
|
def stringWithExpression = "example${2}"
|
||||||
|
|
||||||
|
Assert.assertTrue(string instanceof String)
|
||||||
|
Assert.assertTrue(stringWithExpression instanceof GString)
|
||||||
|
Assert.assertTrue(stringWithExpression.toString() instanceof String)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'placeholder with variable'() {
|
||||||
|
def name = "John"
|
||||||
|
def helloName = "Hello $name!".toString()
|
||||||
|
|
||||||
|
Assert.assertEquals("Hello John!", helloName)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'placeholder with expression'() {
|
||||||
|
def result = "result is ${2 * 2}".toString()
|
||||||
|
|
||||||
|
Assert.assertEquals("result is 4", result)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'placeholder with dotted access'() {
|
||||||
|
def person = [name: 'John']
|
||||||
|
|
||||||
|
def myNameIs = "I'm $person.name, and you?".toString()
|
||||||
|
|
||||||
|
Assert.assertEquals("I'm John, and you?", myNameIs)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'placeholder with method call'() {
|
||||||
|
def name = 'John'
|
||||||
|
|
||||||
|
def result = "Uppercase name: ${name.toUpperCase()}".toString()
|
||||||
|
|
||||||
|
Assert.assertEquals("Uppercase name: JOHN", result)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'GString and String hashcode'() {
|
||||||
|
def string = "2+2 is 4"
|
||||||
|
def gstring = "2+2 is ${4}"
|
||||||
|
|
||||||
|
Assert.assertTrue(string.hashCode() != gstring.hashCode())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class SingleQuotedString {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'single quoted string'() {
|
||||||
|
def example = 'Hello world'
|
||||||
|
|
||||||
|
Assert.assertEquals('Hello world!', 'Hello' + ' world!')
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class SlashyString {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'slashy string'() {
|
||||||
|
def pattern = /.*foobar.*\/hello.*/
|
||||||
|
|
||||||
|
Assert.assertTrue("I'm matching foobar /hello regexp pattern".matches(pattern))
|
||||||
|
}
|
||||||
|
|
||||||
|
void 'wont compile'() {
|
||||||
|
// if ('' == //) {
|
||||||
|
// println("I can't compile")
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'interpolate and multiline'() {
|
||||||
|
def name = 'John'
|
||||||
|
|
||||||
|
def example = /
|
||||||
|
Hello $name
|
||||||
|
second line
|
||||||
|
/
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class Strings {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'string interpolation '() {
|
||||||
|
def name = "Kacper"
|
||||||
|
|
||||||
|
def result = "Hello ${name}!"
|
||||||
|
|
||||||
|
Assert.assertEquals("Hello Kacper!", result.toString())
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'string concatenation'() {
|
||||||
|
def first = "first"
|
||||||
|
def second = "second"
|
||||||
|
|
||||||
|
def concatenation = first + second
|
||||||
|
|
||||||
|
Assert.assertEquals("firstsecond", concatenation)
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class TripleDoubleQuotedString {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'triple-quoted strings with interpolation'() {
|
||||||
|
def name = "John"
|
||||||
|
|
||||||
|
def multiLine = """
|
||||||
|
I'm $name.
|
||||||
|
"This is quotation"
|
||||||
|
"""
|
||||||
|
|
||||||
|
println(multiLine)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
package groovy.com.baeldung.stringtypes
|
||||||
|
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Test
|
||||||
|
|
||||||
|
class TripleSingleQuotedString {
|
||||||
|
|
||||||
|
def 'formatted json'() {
|
||||||
|
def jsonContent = '''
|
||||||
|
{
|
||||||
|
"name": "John",
|
||||||
|
"age": 20,
|
||||||
|
"birthDate": null
|
||||||
|
}
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
def 'triple single quoted'() {
|
||||||
|
def triple = '''im triple single quoted string'''
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'triple single quoted with multiline string'() {
|
||||||
|
def triple = '''
|
||||||
|
firstline
|
||||||
|
secondline
|
||||||
|
'''
|
||||||
|
|
||||||
|
Assert.assertTrue(triple.startsWith("\n"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'triple single quoted with multiline string with stripIndent() and removing newline characters'() {
|
||||||
|
def triple = '''\
|
||||||
|
firstline
|
||||||
|
secondline'''.stripIndent()
|
||||||
|
|
||||||
|
Assert.assertEquals("firstline\nsecondline", triple)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'triple single quoted with multiline string with last line with only whitespaces'() {
|
||||||
|
def triple = '''\
|
||||||
|
firstline
|
||||||
|
secondline\
|
||||||
|
'''.stripIndent()
|
||||||
|
|
||||||
|
println(triple)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'triple single quoted with multiline string with stripMargin(Character) and removing newline characters'() {
|
||||||
|
def triple = '''\
|
||||||
|
|firstline
|
||||||
|
|secondline'''.stripMargin()
|
||||||
|
|
||||||
|
println(triple)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void 'striple single quoted with special characters'() {
|
||||||
|
def specialCharacters = '''hello \'John\'. This is backslash - \\. \nSecond line starts here'''
|
||||||
|
|
||||||
|
println(specialCharacters)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user