JavaRush /Java Blog /Random-IT /Le 10 domande più frequenti sulle stringhe in Java
ext4
Livello 20

Le 10 domande più frequenti sulle stringhe in Java

Pubblicato nel gruppo Random-IT

Le 10 domande più frequenti sulle stringhe in Java sono menzionate qui

[Traduzione] Le 10 domande più frequenti sulle stringhe in Java - 1
  1. Come confrontare le stringhe? Cosa usare: " ==" o equals()?

    In breve, " ==" non confronta i riferimenti alle stringhe, ma equals()confronta i valori contenuti in quelle stringhe. Se non vuoi verificare che due stringhe siano lo stesso oggetto, allora dovresti usare equals().

    Sarebbe anche una buona idea conoscere il concetto di string pool .

  2. Perché char[]le stringhe ( String) sono preferite per proteggere le informazioni sensibili?

    Le stringhe sono immutabili . Ciò significa che una volta creata una stringa, non verrà modificata finché non verrà eseguito il Garbage Collector. Nel caso di un array è abbastanza ovvio che possiamo cambiarne gli elementi. In questo modo, le informazioni sensibili (come una password) non verranno archiviate in testo non crittografato in nessuna parte del programma.

  3. Possiamo passare stringhe come parametro quando utilizziamo un'istruzione switch ?

    Sì, a partire dalla versione 7 del JDK. In precedenza, nella versione 6, ciò non era possibile.

    // java 7 only!
    switch (str.toLowerCase()) {
          case "a":
               value = 1;
               break;
          case "b":
               value = 2;
               break;
    }
  4. Come convertire una stringa in un valore intero?

    int n = Integer.parseInt("10");

    Lo stesso vale per altri tipi primitivi in ​​Java.

  5. Come dividere una stringa in linee delimitate da spazi?

    Il modo più semplice è utilizzare le espressioni regolari. " \s" funge da sostituto degli spazi bianchi come " ", " \t", " \r", " \n".

    String[] strArray = aString.split("\\s+");
  6. < Cosa fa effettivamente il metodo substring()?

    In JDK 6, il metodo substring()mostrava una parte dei caratteri di una stringa esistente, ma non creava un'istanza separata della stringa. Per creare una nuova stringa, rappresentata come un array di caratteri, puoi aggiungere una stringa vuota, ad esempio, in questo modo:

    str.substring(m, n) + ""

    Il risultato è un array di caratteri, che è la nostra nuova stringa. Questo approccio a volte può ridurre il tempo di esecuzione del codice perché il Garbage Collector può distruggere stringhe di grandi dimensioni non utilizzate e archiviare solo sottostringhe.

    In Oracle JDK 7, il metodo substring()crea un nuovo array di caratteri senza utilizzarne uno esistente. Puoi anche dare un'occhiata al diagramma che rappresenta la differenza tra i metodi substring() in JDK 6 e JDK 7 .

  7. String contro StringBuilder contro StringBuffer

    Stringvs StringBuilder: StringBuildermutabile, ciò significa che possiamo modificarne il contenuto dopo la creazione dell'oggetto.

    StringBuildervs StringBuffer: StringBuffersincronizzato, il che significa che funziona correttamente se utilizzato da più thread contemporaneamente, ma è più lento di StringBuilder.

  8. Come ripetere una riga più volte?

    In Python, possiamo semplicemente moltiplicare una stringa per un numero ne poi si ripeterà n volte. In Java, possiamo utilizzare un metodo repeat()della StringUtilsclasse della libreria Apache Commons Lang.

    String str = "abcd";
    String repeated = StringUtils.repeat(str,3);
    //abcdabcdabcd
  9. Come convertire una stringa in una data?

    String str = "Sep 17, 2013";
    Date date = new SimpleDateFormat("MMMM d, yy", Locale.ENGLISH).parse(str);
    System.out.println(date);
    //Tue Sep 17 00:00:00 EDT 2013
  10. Come contare il numero di occorrenze di un determinato carattere in una stringa?

    Utilizza una classe StringUtilsdalla libreria Apache Commons Lang.

    int n = StringUtils.countMatches("11112222", "1");
    System.out.println(n);
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION