Inspectopedia Help

Non-constant 'String' can be replaced with 'StringBuilder'

Reports variables declared as java.lang.String that are repeatedly appended to. Such variables could be declared more efficiently as java.lang.StringBuffer or java.lang.StringBuilder.

Example:

String s = ""; for (int i = 0; i < names.length; i++) { String name = names[i] + (i == names.length - 1 ? "" : " "); s = s + name; }

Such a loop can be replaced with:

StringBuilder s = new StringBuilder(); for (int i = 0; i < names.length; i++) { String name = names[i] + (i == names.length - 1 ? "" : " "); s.append(name); }

Or even with:

String s = String.join(" ", names);

Use the option to make this inspection only report when the variable is appended to in a loop.

Inspection options

Option

Type

Default

Only warn when appending in a loop

Checkbox

true

Inspection Details

Available in:

IntelliJ IDEA 2023.3, Qodana for JVM 2023.3

Plugin:

Java, 233.SNAPSHOT

Last modified: 13 July 2023