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

    Problema confornto stringa con valore...

    Io ho questa classe:

    codice:
      class Body
      {
        String stile;
    
        String jc;
    
        String rstile;
    
        String grassetto;
    
        String italico;
    
        String sottolineato;
    
        String size;
    
        String testo;
    
        String titolopict;
    
        String formatopict;
    
        public String toString()
        {
          StringBuffer buffer = new StringBuffer();
          if ( stile != null )
            buffer.append("Stile body: " + stile + "\n");
          if ( jc != null )
            buffer.append(" Jc body: " + jc + "\n");
          if ( rstile != null )
            buffer.append(" Rstile body " + rstile + "\n");
          if ( grassetto != null )
            buffer.append(" Grassetto body " + grassetto + "\n");
          if ( italico != null )
            buffer.append(" Italico body " + italico + "\n");
          if ( sottolineato != null )
            buffer.append(" Sottolineato body: " + sottolineato + "\n");
          if ( size != null )
            buffer.append(" Dimensione body: " + size + "\n");
          if ( testo != null )
            buffer.append(" Testo body: " + testo + "\n");
          if ( titolopict != null )
            buffer.append(" Nome immagine body: " + titolopict + "\n");
          if ( formatopict != null )
            buffer.append(" Formato immagine body: " + formatopict + "\n");
          return buffer.toString();
        }
      }
    io facendo System.out.println(body.size) so che ha valore 24

    se però provo a fare if(body.size=="24") il compilatore non entra nell'if, come mai???

    riesco a farlo entrare solo se ho body.size con valore null facendo if(body.size==null)

  2. #2
    usa il metodo equals per confrontare ogggetti (in questo caso stringhe)
    Ivan Venuti
    Vuoi scaricare alcuni articoli sulla programmazione, pubblicati su riviste di informatica? Visita http://ivenuti.altervista.org/articoli.htm. Se vuoi imparare JavaScript leggi il mio libro: http://www.fag.it/scheda.aspx?ID=21754 !

  3. #3
    Giusto, le stringhe si usa equals, ma non funziona lo stesso, INFATTI...

  4. #4
    Sia facendo
    codice:
     private void aa()
      {
        for ( int i = 0; i < bodyObjects.size(); i++)
        {
          Body body = (Body)bodyObjects.elementAt(i);
          String size=body.size;
          String a= new String(); 
          a="24";
         
          if(size.equals(a))
          System.out.println("OK");
        }
      }
    che facendo
    codice:
     private void aa()
      {
        for ( int i = 0; i < bodyObjects.size(); i++)
        {
          Body body = (Body)bodyObjects.elementAt(i);
          if(body.size.equals("24")) oppure  if(size.equals(new String("24"))) 
          System.out.println("OK");
        }
      }
    mi da java.lang.NullPointerException....

  5. #5
    Travato l'errore...io ho anche dei valori null quindi prima devo mettere
    if(body.size!=null)
    e poi fare l'equals

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Oppure se la stringa di ricerca sei certo che non sia null, puoi semplicemente fare:

    codice:
    String ricerca = "24";
    if (ricerca.equals (body.size)) .....
    Il contratto di equals() dice chiaramente che x.equals(null) (con x non null, chiaramente), deve ritornare false.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Se invece avessi una cosa del genere
    codice:
    Class Style
    {
    String name;
    String based;
    String size;
    }
    
    ed ho poi da una parte questo....
    
    if(size==null)
    {
    if (style.based !=null)
    {
    String a= style.based; (in una certa posizione)
               for ( int j = 0; j < styleObjects.size() ;j++)
        {
          if(a.equals(style.name);        
    }
    }
    }
    come faccio ad individuare la posizione jesima di style.name???

    ossia style.name1, style.name2

    es io ho
    Style 1
    name=A
    based=null
    size=1

    Style 2
    name=B
    based=A
    size=null

    Style 3
    name C
    based=B
    size=3

    dovrei fare se size è uguale a null e based è diverso da null dovrei trovare confrontare il based dello style in cui sono (che deve rimanere FISSO) con name(che deve variare) e se based e name sono uguale dovrei fare diventare il size che prima era null uguale al size in cui è rispettata l'uguaglianza fra based e name...

    In questo caso specifico dovrei fare diventare size di Style 2 = 3....

    Come fare???

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.