RFS-Riassunto Funzioni Stringhe

Salve a tutti, sono di nuovo qui per dei chiarimenti sulle funzionalità di una stringa (sempre se così si può dire). capisco che ci saranno persone pronte con i fucili, ma menniti con il suo scudo mi proteggerà!!! (speriamo :fearful:) nel dunque mi date una mano ad approfondire queste mie scarsissime conoscenze? :drooling_face:

MiaStringa="ciao"; MiaStringa2="ia";

con MiaStringa:

charAt(n) //Questa non l'ho capita bene, mi restituisce il char (carattere) corrispondente alla n posizione? 'a'

compareTo(MiaStringa2) //restituisce un valore booleano paragonato a MiaStringa2? false

concat(MiaStringa2) //MiaStringa = MiaStringa + MiaStringa2 "ciaoia"

endsWith(MiaStringa2) //non sono riuscito a capirla =( 5x4=22

equals(MiaStringa2) //non penso faccia la stessa cosa di compareTo

equalsIgnoreCase(MiaStringa2)//anche qui non penso che faccia la stessa cosa di compareTo ignorando maiuscole e minuscole

getBytes(Buf,len) //Preleva da Buf (byte) per len (interolungo) caratteri MiaStringa.getBytes(2,2) = "ao"

indexOf(val,from) //piango

lastIndexOf(val,from) //mi dispero

length() //restituisce un valore corrispondente alla lunghezza dei caratteri di MiaStringa 4

replace(substring1,substring2) //rimpiazza substring1 con substring2 replace("ao",MiaStringa2) = "ciia"

setCharAt()//sarà concatenata con CharAt

startsWith() //avrà a che fare con endwith? :D

substring() //che sottostringa sarà?

toCharArray() //sarà un'array di charAt (che non so cos'è?)?

toLowerCase() //tutto minuscolo toUpperCase() //tutto maiuscolo ("CIAO") trim() //elimina spazi prima e/o dopo la stringa (es. " Ciao " = "Ciao")

ringrazio tutti coloro che leggeranno questo post (ma ringrazio di più chi lo commenta ed ancor di più chi mi aiuta a capire :D)

Marbi

charAt(n) è come Stringa[n] in alcuni BASIC

compareTo confronta due stringhe e ti dice quale "viene" prima. Cioè se fai "Ab".compareTo("AB") ti darà 1 perché la 2a stringa viene prima dell'altra (devi considerare i codici ASCII, quindi "b" > "B"

endsWith ti dice se la stringa termina con i caratteri che gli hai passato. Nel tuo caso no perché Ciao termina in ao non in ia.

equals equivale a Stringa1 == Stringa2: cioè controlla se le 2 stringhe sono identiche.

equalsIgnoreCase è come sopra ma dà TRUE anche con "CIAO" e "ciao"

indexOf equivale al vecchio INSTR del BASIC/VBASIC. Ti dice da che carattere parte la 2a stringa all'interno della prima

SetCharAt modifica il carattere all'indirizzo passato. Equivale al BASIC Stringa[n]=".."

StartWith è come l'hai inteso tu.

Substring è come il vecchio MID$: prende una porzione di stringa, da "from" a "to"

toCharArray converte la stringa in un tipo di dati char[]. E' comodo se devi fare manipolazioni sui char in seguito

grazie Leo, non avevo dubbi sulla tua disponibilità adesso devo raccogliere queste info e studiarmele per bene. OneNote in raccolta :D p.s. avendo programmato per un pò di tempo con il linguaggio basic i tuoi esempi sono stati utilissimi... grazie ancora.

Ovviamente ho sorvolato su quelle che ti erano chiare.

si, le sto raccogliendo con un semplice copia/incolla, ma vista l'ora comincia ad essere difficoltoso (mi sono alzato alle 4:30 e non ci vedo più, ma non dalla fame) :sweat_smile: 2 domande:

che intendi per alcuni Basic?

-charAt(n) è come Stringa[n] in alcuni BASIC-

come faccio a sapere qual'è il limite massimo e minimo di un'array?

Grazie

Marbi

Non esiste solo il BASIC di Microsoft, nelle sue sfumature GW-BASIC, QuickBASIC, QBASIC, Visual BASIC ecc.. Esistono altri BASIC. Ad esempio, su Linux esiste Gambas, che ha una sintassi derivata dal BASIC classico. Poi esiste il FreeBASIC, disponibile anche per Windows.

Il limite minimo di una stringa è sempre 0. Ossia il puntatore al 1° elemento è sempre 0. Quindi "CIAO".charAt(0) ti restituisce "C". Il limite massimo è dato da Stringa.lenght()-1 ossia il puntatore all'ultimo elemento è sempre dato dalla lunghezza della stringa - 1 (per ovvi motivi, dato che inizi la numerazione con 0).

Ciao Marbi, non ti preoccupare, ora ho capito

mi sono alzato alle 4:30 e non ci vedo più

perché stasera sbarellavi nei vari Topic, ti difendo io ma tu datti una regolata con gli orari, scherzi a parte 8) E' una cosa buona quella che stai facendo, riordina tutto per bene e quando finisci posta di nuovo tutto, magari aggiungendo un bell'esempio funzionante nel commento, non è affatto male l'idea di avere un prontuario a portata di mando sulle varie funzioni di stringa. Io sarò il primo a copincollarlostamparlo, così la smetterai di dire che non sei utile a nessuno, ecc. ecc., ok ;) Complimenti! XD XD

Non mi trattar male l'unico mio adoratore ]:D

No, no, ti adoro anch'io, mio Re :D :D

Buongiorno a tutti, oggi il risveglio è stato potenzialmente diverso, sarà il caffè napoletano :D

Menniti, sarà un onore per me sapere del tuo utilizzo di almeno una riga di codice uscita dal mio sacco.

Leo, conoscevo il GWBasic, QBasic(che credevo fosse l'acronimo del QuickBasic) ed il Visual Basic, degli altri non ne sapevo neanche l'esistenza (io Zappator Gnurant). Per quanto riguarda la lunghezza di una stringa è giustissimo come concetto, ma se avesso un'array di interi? es. int MioArray[10]={0,1,2,3,4,5,6,7,8,9}; oppure int MioArray[]={0,1,2,3,4,5,6,7,8,9};

ipotizziamo per assurdo che ci sia una situazione dove io ho la necessità di sapere "ubound" o "lbound" (non è detto che io sappia la "grandezza dell'array".

p.s. per chi volesse un pò di caffè come si deve invio tutto via e-mail, fax, ma non per posta prioritaria (arriverebbe freddo).

Per quanto riguarda la lunghezza di una stringa è giustissimo come concetto, ma se avesso un'array di interi? es. int MioArray[10]={0,1,2,3,4,5,6,7,8,9}; oppure int MioArray[]={0,1,2,3,4,5,6,7,8,9};

:grin: :grin:trafugando qua e là ho percepito una strana sensazione :grin: :grin:

Marbi, sto aspettando il tuo riassunto, invece di auto-commentarti perché non completi il lavoro? XD

si, signore, sono appena tornato a casa (per fare 222km di autostrada c'ho impiegato 3 ore) :disappointed_relieved: appena tornato continuo. sto facendo una sorte di sketch di scambio dati [Codice:Parametro:Parametro2:Parametro3:....ParametroN] dove richiami le varie funzioni e successivamente prelevi i dati dalle variabili "Codice", "Parametro[n]" e la possibilità di memorizzare (tramite EEPROM) vari dati

mi rendo conto che sarà superato, vorrà dire che mi preparo il lavoro per un domani :D