back to top

I Text Blocks di MIT App Inventor

In questa nuova lezione della nostra guida a MIT App Inventor vediamo come operare con le stringhe di testo. Anche in questo caso abbiamo a disposizione dei blocchi appositi che prendono il nome di Text Blocks o blocchi di testo.

Per prima cosa vediamo come definire una stringa:

definire una stringa

Il blocco contrassegnato dai simboli " e " può contenere qualsiasi carattere: lettere, numeri, spazi, simboli speciali. Tutto questo blocco sarà considerato da MIT App Inventor una stringa.

Vediamo ora come compiere le principali operazioni sulle stringhe.

Unire più stringhe

Per unire più stringhe in un unica stringa si usa il blocco join; questo blocco appartiene alla famiglia dei mutators e quindi può essere "ampliato" per collegare più delle due stringhe previste di default.

join

Operazioni comuni sulle stringhe

Vediamo di seguito i blocchi grazie ai quali è possibile effettuare le operazioni più comuni sulle stringhe:

  • trim – elimina eventuali spazi vuoti presenti prima o dopo la stringa
  • upcase e downcase – trasforma una stringa, rispettivamene, in minusco e maiuscolo

Misurare la lunghezza di una stringa

Per misurare la lunghezza di una stringa (spazi compresi) si utilizza il blocco length. Il valore restituito sarà, ovviamente, un numero.

Un altro blocco molto utile è is empty il quale consente di verificare se una data stringa è vuota: se la stringa ha lunghezza 0 questo blocco restituisce true, in caso contrario false.

Confrontare due stringhe

Per svolgere questa operazione, MIT App Inventor mette a disposizione il blocco compare texts il quale effettua la comparazione tra due stringhe (posizionate a sinistra e destra del blocco) attraverso gli operatori:

  • =
  • <
  • >

Attraverso il simbolo dell’uguaglianza si verifica, in pratica, se le due stringhe sono identiche; con i simboli di maggiore e minore si verifica, da un punto di vista logico-alfabetico, qual’è la stringa maggiore e quella minore.

compare texts

Inizia o contiene

Attraverso due appositi blocchi è anche possibile verificare se una data stringa inizia o contiene una data sotto-stringa. I blocchi in questione sono starts at e contains. A questi due bocchi vengono passati due argomenti: la stringa sulla quale effettuare la verifica e la sotto-stringa della quale si desidera verificare l’eventuale presenza.

starts at

Il blocco starts at restituirà 0 se la sotto-stringa non è presente, viceversa restituira la posizione del primo carattere della sottostinga all’interno della stringa. Ad esempio: "web" in "mrwebmaster" restituirà 3 perchè questo numero corrisponde alla posizione della lettera "w" all’interno della nostra stringa di riferimento.

contains

Il blocco contains, invece, restituirà semplicemente true o false a seconda che sia stato possibile o meno ritrovare la sotto-stringa all’interno della stringa originale.

Dividere una stringa

Se desideriamo dividere una stringa abbiamo a disposizione diversi blocchi, i pù utilizzati sono:

split
  • split – divide una stringa sulla base di uno specifico separatore (at); restituisce una lista di elementi;
  • split at first – divide una stringa sulla base di uno specifico separatore (at) ma questo viene considerato solo una volta, cioè alla prima occorrenza di sinistra verso destra; restituisce una lista di due elementi;

Oltre a questi deve essere menzionato split at spaces che, come è facile intendere, effettua la divisione della stringa sulla base degli spazi restituendo una lista di elementi.

split at spaces

Tagliare una stringa

Se desideriamo tagliare una stringa possiamo ricorrere al blocco segment.

segment

Questo blocco richiede tre argomenti: la stringa che si desidera tagliare, il carattere di partenza (valore numerico corrispondente alla posizione) e la lunghezza attesa per la sotto-stringa che dovrà essere prodotta. Ad esempio:

  • text: "mrwebmaster"
  • start: 3
  • lehgth: 3

produrrà: "web"

Effettuare sostituzioni

E’ possibile effettuare sostituzioni all’interno di una stringa utilizzando il blocco replace all.

replace all

Grazie a questo blocco saranno sostituite all’interno della stringa specificata in text tutte le occorrenze di segment con replacement. Ad esempio:

  • text: "mrwebmaster"
  • segment: "mr"
  • replacement: "mister"

produrrà: "misterwebmaster"

Pubblicitร