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