library(tidyverse)


stringhe_esempio <- c("Lezione on line", "Lezione in presenza")

# funzioni per accedere/modificare singoli caratteri
nchar("Lezione on line")
str_length(c("Lezione on line", "Lezione in presenza"))
nchar(c("Lezione on line", "Lezione in presenza"))

str_sub(stringhe_esempio, start = 9)
str_sub(stringhe_esempio, end = - 3)
str_sub(stringhe_esempio, start = 9, end = -5) |> str_length()
str_sub(stringhe_esempio, 1, 7) <- "LEZIONE"
stringhe_esempio
str_dup(stringhe_esempio, 3)
str_dup(stringhe_esempio, c(2, 3))


str_trim("  Prova di testo con spazi   ", side = "left")
str_trim("  Prova di testo con spazi   ", side = "right")
str_trim("  Prova di testo con spazi   ", side = "both")

str_pad("testo", width = 10, pad = "_", side = "left")
str_pad("testo", width = 10, pad = "_", side = "right")
str_pad("testo", width = 10, pad = "_", side = "both")

sort(paste0("file-lavoro-", 1:20, ".txt"))


str_pad(1:20, width = 3, side = "left", pad = "0")


paste0("file-lavoro-", 
       str_pad(1:20, width = 3, side = "left", pad = "0"),
       ".txt") |> 
  sort()

strano_testo <- str_c("Questo è un testo di prova molto lungo",
        "Questo è un testo di prova lungo",
        "Questo è un testo di prova molto lunghissimo",
        "Questo è un testo breve", sep = " ")

paste0("Questo è un testo di prova molto lungo",
       "Questo è un testo di prova lungo",
       "Questo è un testo di prova molto lunghissimo",
       "Questo è un testo breve")

cat(str_wrap(strano_testo, width = 40))

stringhe_esempio
str_to_upper(stringhe_esempio)
str_to_lower(stringhe_esempio)
str_to_title(stringhe_esempio)

str_sort(c("Ancona", "Empoli", "Bari", "Como", "Asti"))
str_order(c("Ancona", "Empoli", "Bari", "Como", "Asti"))


stringhe_esempio[1] <- str_c("Oggi", stringhe_esempio[1], sep = " ")
stringhe_esempio

str_locate(stringhe_esempio, pattern = "LEZIONE")
str_extract(stringhe_esempio, pattern = "LEZIONE")
str_detect(stringhe_esempio, pattern = "LEZIONE")

stringhe_esempio[1] <- str_c(stringhe_esempio[1], "LEZIONE", sep = " ")
stringhe_esempio

str_detect(stringhe_esempio, pattern = "LEZIONE")
str_locate_all(stringhe_esempio, pattern = "LEZIONE")
str_extract_all(stringhe_esempio, pattern = "LEZIONE")

str_remove(stringhe_esempio, pattern = "LEZIONE")
str_remove_all(stringhe_esempio, pattern = "LEZIONE")

str_replace(stringhe_esempio, 
            pattern = "LEZIONE",
            replacement = "lezione")

stringhe_esempio
str_replace_all(stringhe_esempio, 
                pattern = regex("LEZIONE", ignore_case = TRUE),
                replacement = "lezione")


testo <- c("Ho 3 gatti e 12 pesci", "Anno 2024", "Nessun numero", "a1b2c3")
str_extract_all(testo, "\\d+")

str_extract_all(testo, "\\d+")
# 