Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    [JAVA]Operatore ternario

    Salve a tutti!

    Ho un dubbio sull'uso dell'operatore ternario: funziona anche con gli array?

    Ad esempio ho:

    String[] testosottolineato = UtilityClass.split(testo[i],"#")!=null ? Formatta.split(testo[i],"#") : {"test0","test1"}

    dove il metodo split è testato e in questo caso ritorna null

    Ve lo scrivo qui di seguito perchè possiate fare dei test:

    /**
    * Divide la stringa str_in in corrispondenza della sequenza di caratteri specificata da str_split e restituisce un'array di stringhe contenenti queste
    * @param str_in La stringa da dividere
    * @param str_split La stringa (in genere composta da un solo carattere) che fa da divisore
    * @return
    */
    public static String[] split(String str_in, String str_split){
    String[] str_out = null;

    if(str_in!=null && str_in.indexOf(str_split)>=0){
    StringTokenizer strToken = new StringTokenizer(str_in,str_split);

    int str_size = strToken.countTokens();

    str_out = new String[str_size];

    for(int i=0;i<str_size;i++){
    str_out[i] = strToken.nextToken();
    }
    }

    return str_out;
    }

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2007
    Messaggi
    86

    Errata corrige

    Nell'esempio ho scritto:

    String[] testosottolineato = UtilityClass.split(testo[i],"#")!=null ? Formatta.split(testo[i],"#") : {"test0","test1"}

    naturalmente non è così, ma:

    String[] testosottolineato = UtilityClass.split(testo[i],"#")!=null ? UtilityClass.split(testo[i],"#") : {"test0","test1"}

    é corretta queta forma?

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    La sintassi non è corretta.
    Questa è la correzione:
    codice:
    String[] testosottolineato = (UtilityClass.split(testo[i],"#")!=null) ? UtilityClass.split(testo[i],"#") : new String[]{"test0","test1"};
    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

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Errata corrige

    Originariamente inviato da valeof
    String[] testosottolineato = UtilityClass.split(testo[i],"#")!=null ? UtilityClass.split(testo[i],"#") : {"test0","test1"};

    é corretta queta forma?
    No, non proprio.
    L'uso delle sole graffe { } per definire un array è possibile solo nella inizializzazione diretta al momento della dichiarazione di una variabile.

    String[] a = { "bla", ..... }; // OK

    Non puoi usare solo { } nelle invocazioni di metodi o all'interno di altri costrutti.

    Devi creare quello che viene chiamato "anonymous" array:

    String[] testosottolineato = UtilityClass.split(testo[i],"#")!=null ? UtilityClass.split(testo[i],"#") : new String[] {"test0","test1"};
    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
    Oct 2007
    Messaggi
    86
    Grazie Lele e Andrea

    Ora funziona

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.