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.