Autore Topic: Gestione delle stringhe  (Letto 2690 volte)

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
Gestione delle stringhe
« il: 24 Aprile 2010, 14:19:12 CEST »
0
Ciao,
volevo capire come risolvere questo problema.
Ho a disposizione una stringa.
In questa stringa voglio trovare se è presente la parola "pippo" se è presente allora le successive 4 lettere sono il mio result.
Se fosse in pascal userei un POS per cercare la parola e un COPY per prelevare le 4 lettere successive, ma non conosco bene java.
Chi mi aiuta?
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline tava

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Mac Os X 10.6
Re:Gestione delle stringhe
« Risposta #1 il: 24 Aprile 2010, 14:46:33 CEST »
+1
Ciao,
innanzitutto ti posto il link delle API ufficiali Java (utilizzando questo linguaggio da 5 anni metà dei problemi li risolvo spulciando la documentazione): http://java.sun.com/javase/6/docs/api/ .

Veniamo ora al tuo problema..se ho capito bene hai una stringa del tipo: "unpodicaratteriprimadipippoYYYYunpodicaratteridopo" e tu vorresti ottenere come risultato "YYYY", giusto?

Bene allora puoi utilizzare il seguente metodo:
Codice (Java): [Seleziona]
private String getSubstring(String string, String pattern, int resultSize) {
                String result = null;
               
                int index = string.indexOf(pattern);
               
                if(index >= 0) {
                        int initIndex = index + pattern.length();
                        int endIndex = initIndex + resultSize;
                        result = string.subSequence(initIndex, endIndex).toString();
                }
               
                return result;
        }

Il metodo indexOf() ritorna la posizione iniziale della sottostringa cercata o -1 se non è stata identificata, mentre subSequence() dati due indici ritornano la stringa al loro interno.

Spero di esserti stato utile, nel caso non capissi qualcosa o avessi capito male io la tua richiesta fammi sapere!

Ciao,
tava

Offline alepio

  • Utente normale
  • ***
  • Post: 163
  • Respect: +3
    • Google+
    • 107850838
    • Mostra profilo
  • Dispositivo Android:
    SAMSUNG ACE
  • Play Store ID:
    Alessandro Piola
  • Sistema operativo:
    WIN 7
Re:Gestione delle stringhe
« Risposta #2 il: 25 Aprile 2010, 09:45:05 CEST »
0
Grazie per la risposta.
Volevo a questo punti chiederti una cosa.
Avrei potuto fare copia incolla ma il mio obbiettivo è quello di comprendere il codice.
Ed ammetto di fare ancora molta fatica.

dopo getsubstring si dichiarano le variabili del metodo.
ma che serve l'intero resultSize?

fino ad ora ho fatto pulsanti che chiamano metodi e il result che appare in TextEdit.

In questo caso come dovrei scrivere l'associazione ad una stringa?
String Valorediritorno = ...... (bho)
-----------------------------------------------------
Con RISPARMIO BATTERIA - Battery Saver puoi anche dimenticarti a casa il carica batteria. Inoltre con gli EXTRAS puoi configurare la navigazione e disattivare i banner pubblicitari. Battery Saver controlla in automatico lo stato dello schermo.Se è spento disattiva WIFI e NAVIGAZIONE MOBILE, per poi riaccenderle a schermo attivo.
[APP] BatterySaver - Android Developers Italia
--------

Offline tava

  • Nuovo arrivato
  • *
  • Post: 8
  • Respect: +2
    • Mostra profilo
  • Sistema operativo:
    Mac Os X 10.6
Re:Gestione delle stringhe
« Risposta #3 il: 25 Aprile 2010, 12:19:27 CEST »
+1
Ciao,
si in effetti non ho commentato molto bene il codice ero un pò di fretta!
Allora, date le tue richieste ho cercato di generalizzare il problema per creare un metodo che ti potesse essere d'aiuto in altri casi simili.
I parametri del metodo servono a quello, cioè:
  • string è la stringa nella quale cercare
  • pattern è la stringa da cercare
  • resultSize è il numero di caratteri da restituire come risultato (nell'esempio che hai fatto tu è 4)

Per mostrare la sottostringa in una TextView ad esempio puoi fare:
Codice (Java): [Seleziona]
String string = "xxxxxxxxxpippoYYYYZZZZZZZZ";
String pattern = "pippo";
int resultSize = 4;

String result = getSubstring(string, pattern, resultSize);

//se result è null la sottostringa "pippo" non è presente nella stringa
if(result == null) {
   tv.setText("sottostringa non presente");
}
//result non è null quindi contiene la stringa di interesse (in questo caso YYYY)
else {
   textView.setText(result);
}

Modificando ad esempio resultSize puoi ottenere un risultato diverso, ad esempio con un valore pari a 6 otterrai "YYYYZZ".

Se hai altri problemi scrivi pure!

Buona domenica,
tava

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Gestione delle stringhe
« Risposta #4 il: 02 Maggio 2010, 23:23:01 CEST »
0
Possiamo mettere [RISOLTO]? :)
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !