sexta-feira, 5 de fevereiro de 2010

Trabalhando com Strings

Agora vamos falar sobre um tipo que é muito comum em Java, e frequentemente nos dá um pouco de trabalho.
Infelizmente, Java permite apenas uma maneira de especificar literais string ("") o texto entre aspas duplas. Logo, se uma string tem um monte de barras invertidas, já fica difícil de entender.
O Groovy, diferentemente de Java, reconhece que nem todo o uso de literais de string é o mesmo. Nele temos um leque de opções, e as maravilhosas GStrings.
No groovy temos os seguintes tipos de strings:
Caracteres Exemplo GString
Aspas Simples 'oi Groovy' Não
Aspas Duplas "oi Groovy" Sim

Temos também as aspas triplas simples e as triplas duplas, que serão exemplificadas mais tarde.
Uma coisa importante é que, uma String Java é uma instância de java.lang.String e uma GString é uma instância de groovy.lang.GString. No Groovy, quando uma declaração de aspas simples é encontrada, é criada um tipo java.lang.String.
Se você é um cara esperto, ligado, deve ter pensado... se algo entre aspas simples, como um 'c' é um java.lang.String, como é uma representação de char no Groovy?
Para isso, precisamos informar o nosso amigo.
def comoUmChar = 'c' as char
Desta forma, a variável fará uma referência a java.lang.Character e não a java.lang.String. Simples né?
Agora chega de conversa e vamos a alguns exemplos de como trabalhar com Strings em Groovy.
// Duas java.lang.String e uma GString
def eu = 'Lucas'
def esposa = 'Cristiane'
// Note o $. Em muitas linguagens isso existe, copiaram mesmo!
def linha = "Eu $eu - Esposa $esposa"
assert linha == 'Eu Lucas - Esposa Cristiane'
assert linha instanceof GString

def data = new Date()
// Mais uma coisa de Groovy. Quando chamo obj.prop, seria como estar chamando obj.getProp().
// No Groovy Bean, isso é transparente, tanto para o get como para o set, ou seja, obj.prop = algo seria obj.setProp(algo)
def dataDetalhe = "Ano $data.year - Mês $data.month - Dia - $data.date"

// Alguns métodos comuns de String
def saudacao = "Hello Groovy"
assert saudacao.startsWith("Hello")
assert "H" == saudacao.getAt(0)
assert saudacao.count("G") == 1
assert saudacao[3..6] == "lo G" // Substring!!!!

É isso ai pessoal, agora já temos noção de como Groovy veio ajudar a nossa vida.
Em um próximo post vou falar sobre expressões regulares. Abraços!

Nenhum comentário:

Postar um comentário

Seguidores