Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47

    Controllare il contenuto numerico/carattere/ spaziovuoto/ di una matrice

    Vorrei porvi il seguente quesito sperando di avvicinarmi sempre di più alla risoluzione del mio problema. Data la seguente tabella di esempio:
    hello I have the following question to ask yourself. Given the following table
    { 22 pp 22
    22.00 0.2
    0.2 kk ; }


    come faccio a dire valutare scandendo righe e colonne con un for, che nella posizione [2][1] ho un numero (e non un carattere o uno spazio vuoto?)
    Grazie in anticipo a chi mi aiuterà nel mio dubbio!

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Quote Originariamente inviata da main_001 Visualizza il messaggio
    Vorrei porvi il seguente quesito sperando di avvicinarmi sempre di più alla risoluzione del mio problema. Data la seguente tabella di esempio:
    hello I have the following question to ask yourself. Given the following table
    { 22 pp 22
    22.00 0.2
    0.2 kk ; }


    come faccio a dire valutare scandendo righe e colonne con un for, che nella posizione [2][1] ho un numero (e non un carattere o uno spazio vuoto?)
    Grazie in anticipo a chi mi aiuterà nel mio dubbio!
    Ma cosa cambia rispetto a quanto ti avevamo detto ieri nell'altra discussione?

    Non penso che sia un problema scrivere il ciclo for e prendere ogni elemento della matrice, se poi hai capito come usare l'operatore instanceof il problema non sussiste...

    Ci vuole davvero un attimo a buttare giù qualche riga per fare il ciclo, ma è davvero meglio per te se provi a farlo tu, e se non ti viene giusto vieni qui postando il codice, e si cerca di risolvere il problema...

    Dico sul serio, non ti faremmo un favore a scriverti noi il codice...

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    Ma cosa cambia rispetto a quanto ti avevamo detto ieri nell'altra discussione?

    Non penso che sia un problema scrivere il ciclo for e prendere ogni elemento della matrice, se poi hai capito come usare l'operatore instanceof il problema non sussiste...

    Ci vuole davvero un attimo a buttare giù qualche riga per fare il ciclo, ma è davvero meglio per te se provi a farlo tu, e se non ti viene giusto vieni qui postando il codice, e si cerca di risolvere il problema...

    Dico sul serio, non ti faremmo un favore a scriverti noi il codice...

    No assolutamente voglio imparare
    ti posto il mio codice

    Object a[][]=new Object[10][10];
    int i, j;


    for(i=0; i<=9; i=i+1) {
    for(j=0; j<=9; j=j+1) {
    a[i][j]=0;
    }
    }


    a[3][5]= "pp";
    a[9][9]= "kk";
    for(i=0; i<=9; i=i+1) {
    for(j=0; j<=9; j=j+1) {

    if ( a[i][j] instanceof Object ){
    System.out.println("si ob");

    }
    else if (a[i][j] instanceof Double){
    System.out.println("si double");
    }
    else if (a[i][j]instanceof Float){
    System.out.println("si float");
    }

    else
    System.out.println("nessuno dei precedenti");
    }
    }


    for(i=0; i<=9; i=i+1) {
    for(j=0; j<=9; j=j+1) {

    System.out.print(a[i][j]+" ");
    }
    System.out.println("");
    }
    }

    il problema è che mi valuta il tipo della matrice e non il contenuto... Cosa sbaglio?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da main_001 Visualizza il messaggio
    il problema è che mi valuta il tipo della matrice e non il contenuto... Cosa sbaglio?
    Il punto è che a[i][j] instanceof Object è sempre true, perché tutti gli oggetti passano il test "è-un" Object
    E siccome questo test lo fai prima di testare altri tipi specifici ..... negli altri non ci passa.


    P.S. posta codice tra i tag CODE
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Il punto è che a[i][j] instanceof Object è sempre true, perché tutti gli oggetti passano il test "è-un" Object
    E siccome questo test lo fai prima di testare altri tipi specifici ..... negli altri non ci passa.


    P.S. posta codice tra i tag CODE
    Grazie per la risposta e la prossima volta utilizzerò il formato corretto per postare il codice.
    Se commento le righe relative a instanceof Object mi stampa direttamente nessuno dei precedenti.
    Come faccio a risolvere il mio problema?

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da main_001 Visualizza il messaggio
    Se commento le righe relative a instanceof Object mi stampa direttamente nessuno dei precedenti.
    Scusa ma hai inserito tutti

    a[i][j]=0;

    (0 = int --> Integer)

    e poi 2 stringhe

    a[3][5]= "pp";
    a[9][9]= "kk";


    Nessuna di queste cose è un Float o Double che tu vai a testare.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Quote Originariamente inviata da andbin Visualizza il messaggio
    Scusa ma hai inserito tutti

    a[i][j]=0;

    (0 = int --> Integer)

    e poi 2 stringhe

    a[3][5]= "pp";
    a[9][9]= "kk";


    Nessuna di queste cose è un Float o Double che tu vai a testare.
    Giusta osservazione infatti ho modificato il codice e ti chiedo un altro po di pazienza al fine di arrivare alla soluzione. Adesso ho modificato il codice e mi stampa sono gli integer ma non gli altri. Quali altri errori di distrazione e ignoranza ho commesso??

    codice:
    import java.util.* ; 
    public class SommaMatrice {
    	public static void main(String[] args) {
    		Object a[][]=new Object[10][10];
    	    int i, j;
    
    
    	    for(i=0; i<=9; i=i+1) {
    	      for(j=0; j<=9; j=j+1) {
    	        a[i][j]=0;
    	      }
    	    }
    
    
    	    a[3][5]= "10.10";
    	    a[9][9]= "kk";
    	    for(i=0; i<=9; i=i+1) {
    		      for(j=0; j<=9; j=j+1) {
    		    	 
    	    if ( a[i][j] instanceof Integer ){
    			System.out.println("si integer");
    			
    		}
    		if (a[i][j] instanceof Character){
    			System.out.println("si double");									
    		}
    		else if (a[i][j]instanceof Double){
    			System.out.println("si double");
    		}
    		
    		else 
    			System.out.println("nessuno dei precedenti");
    		      }
    		     }
    
    
    	    for(i=0; i<=9; i=i+1) {
    	      for(j=0; j<=9; j=j+1) {
    	    	
    	        System.out.print(a[i][j]+" ");
    	      }
    	      System.out.println("");
    	    }
    	  }
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Intanto fai attenzione al fatto che per quanto riguarda Character hai dimenticato l'else if e scritto un if, quindi per ogni intero oltre a stampare "si integer" stamperà a video anche "nessuno dei precedenti".

    "10.10" e "kk" poi sono di tipo String, che è più generale del tipo Character, un esempio di char è invece 'a', con l'apice singolo

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    @main_001: se può esserti utile, guarda la gerarchia delle classi nel package java.lang:
    https://docs.oracle.com/javase/8/doc...kage-tree.html
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Quote Originariamente inviata da Ansharja Visualizza il messaggio
    Intanto fai attenzione al fatto che per quanto riguarda Character hai dimenticato l'else if e scritto un if, quindi per ogni intero oltre a stampare "si integer" stamperà a video anche "nessuno dei precedenti".

    "10.10" e "kk" poi sono di tipo String, che è più generale del tipo Character, un esempio di char è invece 'a', con l'apice singolo

    Grazie mille di tutto anche per la pazienza siete fantastici! :*

Tag per questa discussione

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.