Textos
Strings, seus métodos, interpolação e formatação.
Criar#
dataforge
simples := "aspas duplas"
outro := 'aspas simples'
longo := """uma string
que atravessa
varias linhas"""
out simples.length(), longo.lines().length()Acessar#
dataforge
nome := "DataForge"
out nome.length() # 9
out nome[0] # D
out nome[-1] # e
out nome[0:4] # Data
out nome[::-1] # egroFataDMétodos#
| Grupo | Métodos |
|---|---|
| caixa | upper() lower() title() capitalize() swapcase() |
| limpeza | trim() strip() lstrip() rstrip() |
| busca | contains(s) find(s) startswith(s) endswith(s) count(s) |
| troca | replace(a, b) removeprefix(p) removesuffix(s) |
| divisão | split(sep) words() lines() partition(sep) |
| junção | join(itens) concat(...) repeat(n) |
| preenchimento | pad_start(n, c) pad_end(n, c) center(n) zfill(n) |
| teste | isalpha() isdigit() isalnum() isspace() isupper() |
| outros | reverse() slice(a, b) char_at(i) index_of(s) |
dataforge
frase := " DataForge e uma linguagem "
out frase.trim() # sem espaços nas pontas
out frase.trim().upper() # tudo maiúsculo
out frase.contains("linguagem") # yes
out frase.trim().split(" ").length() # 5
out "abc".pad_start(6, ".") # ...abc
out "-".join(["a", "b", "c"]) # a-b-cInterpolação#
Uma string prefixada por $ interpreta {…} como expressão:
dataforge
nome := "Ana"
idade := 30
out $"Ola {nome}, voce tem {idade} anos"
out $"no ano que vem: {idade + 1}"
out $"{yes} e {void} seguem a grafia da linguagem"
out $"{{chaves literais}} sao dobradas"Compare com a alternativa por concatenação:
dataforge
"Ola, " + nome + "! Voce tem " + str(idade) + " anos."
$"Ola, {nome}! Voce tem {idade} anos."A segunda tem menos ruído, menos + e nenhum str() — a conversão é automática. Detalhes em Interpolação.
Concatenação#
Com +. Números viram texto automaticamente quando um dos lados é texto:
dataforge
out "total: " + str(42)
out "x" + 1 # "x1" — conversão implícitaFormatar uma tabela#
pad_end alinha texto à esquerda; pad_start, números à direita:
dataforge
itens := [
{"nome": "Mouse", "qtd": 15, "preco": 80.0},
{"nome": "Teclado", "qtd": 3, "preco": 200.0}
]
out $"{"PRODUTO".pad_end(12)}{"QTD".pad_start(5)}{"PRECO".pad_start(10)}"
out "-".repeat(27)
cycle i in itens:
out $"{i["nome"].pad_end(12)}{str(i["qtd"]).pad_start(5)}{str(i["preco"]).pad_start(10)}"saída
PRODUTO QTD PRECO
---------------------------
Mouse 15 80.0
Teclado 3 200.0Além do básico#
Para caixas, tabelas desenhadas, slug, remoção de acentos e distância entre textos, veja Arcane.Text. Para validação e extração por padrão, Arcane.Regex.