String principais metodos
name.uppercase(), name.lowercase()
name.trim() : remove espaco em branco no inicio e fim
name.isBlank() // "" or " "
name.isEmpty() // ""
name.startsWith("n")
name.endsWith("e")
name.contains(substring) : encontra substrig (Boolean)
name.indexOf(substring) : encontra substrig (Int)
name.replace(old, new)
name.split(str)
join : eh um methodo de list e não de string
name.split(" ").joinToString("-")
slice : pega ultima palavra de tamanho 7, usa range operator
name.slice(name.length - 7 .. name.length - 1)
List pricipais metodos
bc.add(45), add(index, 45)
bc.addAll(otherList) : concatenar listas
bc.indexOf(elemento) : -1 se não achou ou indece caso exista (Int)
bc.removeAt(index) : remove e retona elemento removido, pode lancar IndexOutOfBoundsException
bc.remove(elemento) : apenas remove caso exista sem execoes e retorna um (Boolean)
bc.sort() : ordena lista (crescente), alterando ela mesma in-place
bc.reverse() : in-place reverte
non in-place: sorted(), reversed()
bc.sortedBy() : exemplo ondena lista de palavras pela ultima letra
lst.sortedBy { it.last() }
bc.getOrElse(index) : exemplo retorna valor default caso o indece nao exista, n~ lanca exceção
bc.getOrElse(0) { 1000 } // pega primeiro item da lista
exemplos map reduce:
val oe = List(100){ it+1 }
// quadrados perfeitos
// [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
println(oe.filter { v ->
val sv = sqrt(v.toFloat())
(sv - sv.toInt()) <= 0.0f
})
val oz = listOf(1, 2, 3, 4)
println(oz.map { it*it }) // [1, 4, 9, 16]
Map principais metodos
in
getOrElse
[key]
for: iteravel par key/value
* presenvar ordem de inserção
Atributos
entries
keys
values
size
./gradlew run
Pode ser feito o build separado de cada projeto (babynames, copyspecial, wordcount) entrando na pasta de cada um
e executado gradle build
. Ou na raiz kotlin-exercises/ executar ./gradlew build :babynames
Depois do build o executavel completo foi criado, no sub-projeto, dentro de build/distributions/*.{tar,zip} Ao desempacotar o .zip temos: bin/ lib/
- projeto.bat: executavel para Windows
- projeto: executavel Unix
desempacote .tar
$./bin/wordcount --count ../mytxtfile
Em settings.gradle.kts, na raiz do projeto, na lista include escreva o nome do projeto "bala-bronze", por exemplo
Ainda na raiz, rode: $ mkdir -p bala-bronze/src/main/kotlin/
Copie o build.gradle.kts de app para bala-bronze (no mesmo nível de src/)
Sincronize o gradle no projeto todo, Na IDE IntelliJ volte para settings.gradle e sync