Vytvoření řetězce z pole stringů

Níže uvedený kód předpokládá, že máme definováno následující pole: String[] arr = {"a", "b", "c", "d"}.

Použití StringBuilderu.

StringBuilder sb = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
       sb.append(arr[i]);
       if (i < arr.length - 1) {
              sb.append(", ");
       }
}
System.out.println(sb.toString());

Variace na předchozí způsob.

StringBuilder sbb = new StringBuilder();
for (int i = 0; i < arr.length; i++) { 
       if (i > 0) {
              sbb.append(", ");
       }
       sbb.append(arr[i]);
}
System.out.println(sbb.toString());

Použití StringUtils (vnitřně používá StringBuilder).

String result = StringUtils.join(arr, ", ");
System.out.println(result);

Do projektu je třeba přidat závislost.

<dependency>
 <groupId>org.apache.commons</groupId>
 <artifactId>commons-lang3</artifactId>
 <version>3.4</version>
</dependency>

A trochu divoký způsob pomocí třídy Arrays a regulárních výrazů.

String string = Arrays.toString(arr);
String regex = Pattern.quote("[") + "|" + Pattern.quote("]");
String string2 = string.replaceAll(regex, "");
System.out.println(string2);

Převede pole na řetězec (ten obsahuje [] a jednotlivé stringy oddělené čárkou). Následně provede odstranění hranatých závorek. Pattern.quote() provádí správně odescapování daného znaku či sekvence znaků.

Napsat komentář