Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179

    [java] creare array di stringhe

    salve potreste aiutarmi?
    ho bisogno di creare un arrai che contenga le variabili "message, sender, date, time" del mio codice:
    codice:
    import java.sql.*;
    import java.util.Calendar;
    import java.text.SimpleDateFormat;
    
    /**
     * Legge i dati da un database
     */
     public class Select {
    
       public static void main(String[] args) {
    
          String connStr =
             "jdbc:mysql://localhost:1980/" +
             "test?user=root&password=nicola";
          String statement =
             "SELECT message, sender, messageDate " +
             "FROM guestbook";
    
          Connection conn = null;
    
          try {
             Class.forName("com.mysql.jdbc.Driver");
             conn = DriverManager.getConnection(connStr);
    
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(statement);
    
             while(rs.next()) {
                String message = rs.getString(1);
                String sender = rs.getString(2);
                java.util.Date d = rs.getDate(3);
                java.util.Date t = rs.getTime(3);
    
                if(sender == null) {
                   sender = "mittente ignoto";
                }
    
                Calendar c = Calendar.getInstance();
                c.setTime(d);
                SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
                String date = df.format(d);
    
                c = Calendar.getInstance();
                c.setTime(t);
                df = new SimpleDateFormat("HH:mm:ss");
                String time = df.format(t);
    
                System.out.println(
                   String.format("Messaggio da %s (%s, %s):\n%s",
                      sender, date, time, message)); 
             }
    
             conn.close();
          } catch (ClassNotFoundException e) {
             e.printStackTrace();
          } catch (SQLException e) {
             e.printStackTrace();
          }
       }
    }
    quindi poi dovrei fare system.out.println (array)...
    io faccio così...
    codice:
    String[ ] data = new String [ ] {"message".....}
    ArrayList list = new ArrayList(data)
    spero di esser stato chiaro..
    se sbaglio potreste dirmi come fare?grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    ti basta questo
    codice:
    List<String> list = new ArrayList<String>();
    e poi aggiungi le tue stringhe

  3. #3
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    grazie...
    ho il problema però che mi stampa le tringhe ripetutamente cioè...
    mi stampa questo:
    codice:
    Ciao, questo è il mio primo messaggio!, mesaggio da mara, in data 18.09.2006, alle ore 15:12:12
    
    Ciao, questo è il mio primo messaggio!, mesaggio da mara, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio secondo messaggio!, mesaggio da daniele, in data 18.09.2006, alle ore 15:12:12
    
    Ciao, questo è il mio primo messaggio!, mesaggio da mara, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio secondo messaggio!, mesaggio da daniele, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio terzo messaggio!, mesaggio da francesco, in data 18.09.2006, alle ore 15:12:12
    
    Ciao, questo è il mio primo messaggio!, mesaggio da mara, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio secondo messaggio!, mesaggio da daniele, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio terzo messaggio!, mesaggio da francesco, in data 18.09.2006, alle ore 15:12:12
    gax è nu trmon, mesaggio da nicola, in data 13.10.2006, alle ore 11:46:20
    
    BUILD SUCCESSFUL (total time: 1 second)
    invece dovrebbe stampare

    codice:
    Ciao, questo è il mio primo messaggio!, mesaggio da mara, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio secondo messaggio!, mesaggio da daniele, in data 18.09.2006, alle ore 15:12:12
    Ciao, questo è il mio terzo messaggio!, mesaggio da francesco, in data 18.09.2006, alle ore 15:12:12
    gax è nu trmon, mesaggio da nicola, in data 13.10.2006, alle ore 11:46:20

    sai dirmi il perchè? grazie
    il codice è:
    codice:
    public class prova {
    
       public static void main(String[] args) {
     
          String connStr =
             "jdbc:mysql://localhost:1980/" +
             "test?user=root&password=nicola";
          String statement =
             "SELECT message, sender, messageDate " +
             "FROM guestbook";
    
          Connection conn = null;
          
         
          try {
             String fileWrite = "c:/Ingegneria/mysql/temp/database.txt";
             Class.forName("com.mysql.jdbc.Driver");
             conn = DriverManager.getConnection(connStr);
             StringBuffer stringBuffer = new StringBuffer();
             Statement stmt = conn.createStatement();
             ResultSet rs = stmt.executeQuery(statement);
             StringBuffer Text = new StringBuffer();    
             
             
             while(rs.next()) {
                String message = rs.getString(1);
                String sender = rs.getString(2);            
                java.util.Date d = rs.getDate(3);
                java.util.Date t = rs.getTime(3);
    
                if(sender == null) {
                   sender = "mittente ignoto\n";
                }
    
                Calendar c = Calendar.getInstance();
                c.setTime(d);
                SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy");
                String date = df.format(d);
    
                c = Calendar.getInstance();
                c.setTime(t);
                df = new SimpleDateFormat("HH:mm:ss");
                String time = df.format(t);
                Text.append(message + ", messaggio da " + sender + ", in data " + date +", alle ore "+ time);
                Text.append("\r\n");
                stringBuffer.append(Text);
                System.out.println(Text);   
                 
             
                    writeFile(stringBuffer.toString(), fileWrite);
                    boolean success = (new File("c:/ingegneria/mysql/temp/database.html")).delete();
                    if (!success) {}           
             }
             conn.close();
          } catch (ClassNotFoundException e) {
             e.printStackTrace();
          } catch (SQLException e) {
             e.printStackTrace();
          }  catch (Exception e) {
             e.printStackTrace();
          }
       }
       
       
    	
    
       public static void writeFile(String Text, String fileName) throws IOException {
    		FileWriter fileWriter = new FileWriter(fileName);
    		fileWriter.write(Text);
    		fileWriter.close();
                    //Runtime r = Runtime.getRuntime();
                    //Process d =r.exec("notepad.exe c:/Ingegneria/mysql/temp/database.txt");
                    //d.exitValue();
    		
    	}
       
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    devi svuotare il buffer Text dopo ogni scrittura sul file con il metodo flush().

  5. #5
    Utente bannato
    Registrato dal
    Sep 2006
    Messaggi
    179
    ti ringrazio...
    mi potresti fare un esempio di codice....?
    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    codice:
    writeFile(stringBuffer.toString(), fileWrite);
    stringBuffer.flush();
    text.flush();

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 © 2025 vBulletin Solutions, Inc. All rights reserved.