Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [java] elaborazione stringhe

    hola a todos

    sto impazzendo sull'eleborazione di una stringa da convertire in un formato leggibile su db2

    e recuperarla successivamente, ecco un esempio

    inviare 10 11 2004 -> convertirlo in -> 1041110

    e il 1041110 -> riportarlo in -> 10 11 2004

    sto provando a cercare nel manuale di sun di java ma nn trovo nulla sullo split di stringhe. qualcuno saprebbe dirmi qualcosa?

    ciauz


    susassero :P
    - Ander Costruscion -

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    come da regolamento, specifica linguaggio/versione anche nel titolo
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304
    Se per SPLIT di stringhe intendi estrarre una sottostringa, esiste il metodo substring. Quello che chiedi tu non è complicatissimo da fare, solo che non ho capito se, all'inizio, la data viene rappresentata come stringa unica, come 3 stringhe differenti per giorno, mese, anno o se hai a disposizione tali dati in formato numerico. Se, ad esempio, la tua data è SEMPRE nel formato GG MM AAAA (ossia, sempre 2 cifre per il giorno, 2 cifre per il mese e 4 cifre per l'anno), allora si può procedere nel seguente modo (caso in cui la data sia contenuta in una stringa unica, il più complesso):
    codice:
    String miaData = "10/11/2004"; //Nota: è indifferente che ci siano gli slash o degli spazi come separatore
    
    // Estraggo i vari campi come stringhe
    String giorno = miaData.substring(0, 2);
    String mese = miaData.substring(3, 5);
    String anno = miaData.substring(6, 10);
    
    // Ora converto in intero l'anno, perchè devo operare matematicamente
    int annoIntero = Integer.parseInt(anno);
    annoIntero -= 1900 // Noto che l'anno viene messo in complemento a 1900 
    
    // Ora costruisco la nuova stringa con la data nel formato DB2:
    String nuovaData = "" + annoIntero + mese + giorno
    Se i campi fossero già separati in stringhe indipendenti oppure fossero in formato numerico rappresentati da 3 interi, la prima parte (i substring) si può facilmente saltare.

    Il problema vero sorge quando si deve convertire da formato DB2 (anno_mese_giorno con anno in complemento a 1900). Ma anche questo si può fare semplicemente, basta prendere un piccolo accorgimento, per le date inferiori al 2000:
    codice:
    String dataDB2 = "1041110";
    
    // Controllo se la data è posteriore o anteriore al 2000:
    if (dataDB2.length() > 6) {
       // La data è posteriore al 2000
       String anno = dataDB2.substring(0, 3);
       String mese = dataDB2.substring(3, 5);
       String giorno = dataDB2.substring(5, 7);
    } else {
       // La data è anteriore al 2000
       String anno = dataDB2.substring(0, 2);
       String mese = dataDB2.substring(2, 4);
       String giorno = dataDB2.substring(4, 6);
    }
    
    // Opero il calcolo sull'anno:
    int annoIntero = Integer.parseInt(anno) + 1900;
    
    // Torno al formato GG/MM/AA della data
    String data = giorno + "/" + mese + "/" + annoIntero;
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.