String.valueOf în Java

Transformă orice valoare (număr, boolean, char, obiect, char[]) în String; copyValueOf face un șir dintr-un char[].

Sintaxă
static String valueOf(int i)   // și long, float, double, boolean, char
static String valueOf(Object obj)
static String valueOf(char[] data)
static String copyValueOf(char[] data, int offset, int count)

Ce face String.valueOf

String.valueOf(x) este calea standard de a transforma o valoare în text. Are variante pentru toate tipurile primitive (int, double, boolean, char…), pentru char[] și pentru orice obiect. Pentru un obiect apelează toString(), dar dacă obiectul este null returnează textul "null" în loc să arunce excepție.

copyValueOf(data) și copyValueOf(data, offset, count) creează un șir din caracterele unui char[] (toate sau count caractere de la offset). Fac același lucru ca valueOf(char[]) și new String(data, offset, count); numele vine din primele versiuni Java.

Parametri

Parametru Descriere
valoarea Numărul, caracterul, booleanul, obiectul sau array-ul de transformat.
offset, count La copyValueOf/valueOf(char[], int, int): de unde se începe și câte caractere se iau.

Ce returnează

Textul corespunzător valorii.

Exemple

Exemplul 1: Diverse tipuri transformate în text

public class Main {
    public static void main(String[] args) {
        String a = String.valueOf(42);
        String b = String.valueOf(9.5);
        String c = String.valueOf(true);
        String d = String.valueOf('ș');
        System.out.println(a + " " + b + " " + c + " " + d);
        System.out.println(a.length() + b.length());
        Object nimic = null;
        System.out.println(String.valueOf(nimic));
    }
}

Rezultat

42 9.5 true ș
5
null

Exemplul 2: Din char[] în String

public class Main {
    public static void main(String[] args) {
        char[] litere = {'B', 'r', 'a', 'ș', 'o', 'v'};
        System.out.println(String.valueOf(litere));
        System.out.println(String.copyValueOf(litere, 0, 4));
        System.out.println(String.valueOf(litere, 2, 4));
    }
}

Rezultat

Brașov
Braș
așov

Exemplul 3: Suma cifrelor unui număr

Transformăm numărul în text ca să îi parcurgem cifrele.

public class Main {
    public static void main(String[] args) {
        int numar = 2024;
        String cifre = String.valueOf(numar);
        int suma = 0;
        for (char c : cifre.toCharArray()) {
            suma += c - '0';
        }
        System.out.println("Suma cifrelor lui " + numar + " este " + suma);
    }
}

Rezultat

Suma cifrelor lui 2024 este 8

Greșeli frecvente

  • Scrii obiect.toString() pe o valoare care poate fi null și primești NullPointerException. String.valueOf(obiect) dă "null".
  • Transformi un număr în text cu "" + numar. Funcționează, dar String.valueOf(numar) spune clar ce vrei.

Comenzi înrudite

  • Integer.toString: Transformă un număr întreg în text, în baza 10 sau în orice bază între 2 și 36.
  • String.toCharArray: toCharArray() copiază șirul într-un array nou de char; getChars() copiază o porțiune într-un array existent.
  • Objects.toString: Transformă un obiect în text fără să arunce excepție pentru null: dă „null” sau textul ales de tine.
  • String.format: Construiește un șir dintr-un șablon cu %s, %d, %.2f etc.; formatted() face același lucru pe șablon.