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