Skip to content

Commit 97faa56

Browse files
committed
Reducing number of StringBuilder::toString conversions to improve efficiency and readability
1 parent 81af743 commit 97faa56

File tree

7 files changed

+26
-26
lines changed

7 files changed

+26
-26
lines changed

src/main/java/com/beust/jcommander/DefaultUsageFormatter.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public DefaultUsageFormatter(JCommander commander) {
4040
public final void usage(String commandName) {
4141
StringBuilder sb = new StringBuilder();
4242
usage(commandName, sb);
43-
commander.getConsole().print(sb.toString());
43+
commander.getConsole().println(sb);
4444
}
4545

4646
/**
@@ -153,7 +153,7 @@ public void appendMainLine(StringBuilder out, boolean hasOptions, boolean hasCom
153153
if (commander.getMainParameter() != null && commander.getMainParameter().getDescription() != null) {
154154
mainLine.append(" ").append(commander.getMainParameter().getDescription().getDescription());
155155
}
156-
wrapDescription(out, indentCount, mainLine.toString());
156+
wrapDescription(out, indentCount, mainLine);
157157
out.append('\n');
158158
}
159159

@@ -286,7 +286,7 @@ public void appendCommands(StringBuilder out, int indentCount, int descriptionIn
286286
firstCommand = false;
287287
}
288288
JCommander.ProgramName progName = commands.getKey();
289-
String dispName = progName.getDisplayName();
289+
var dispName = progName.getDisplayName();
290290
String commandDescription = Optional.ofNullable(getCommandDescription(progName.getName()))
291291
.map(desc -> s(6) + desc)
292292
.orElse("");
@@ -352,9 +352,9 @@ public String getCommandDescription(String commandName) {
352352
* description}. If the first line needs to be indented prepend the
353353
* correct number of spaces to {@code description}.
354354
*/
355-
public void wrapDescription(StringBuilder out, int indent, int currentLineIndent, String description) {
355+
public void wrapDescription(StringBuilder out, int indent, int currentLineIndent, CharSequence description) {
356356
int max = commander.getColumnSize();
357-
String[] words = description.split(" ");
357+
String[] words = description.toString().split(" ");
358358
int current = currentLineIndent;
359359

360360
for (int i = 0; i < words.length; i++) {
@@ -385,7 +385,7 @@ public void wrapDescription(StringBuilder out, int indent, int currentLineIndent
385385
* correct number of spaces to {@code description}.
386386
* @see #wrapDescription(StringBuilder, int, int, String)
387387
*/
388-
public void wrapDescription(StringBuilder out, int indent, String description) {
388+
public void wrapDescription(StringBuilder out, int indent, CharSequence description) {
389389
wrapDescription(out, indent, 0, description);
390390
}
391391

@@ -404,13 +404,13 @@ public static String getI18nString(ResourceBundle bundle, String key, String def
404404
*
405405
* @return count-many spaces
406406
*/
407-
public static String s(int count) {
407+
public static CharSequence s(int count) {
408408
StringBuilder result = new StringBuilder();
409409

410410
for (int i = 0; i < count; i++) {
411411
result.append(" ");
412412
}
413-
return result.toString();
413+
return result;
414414
}
415415

416416
/**

src/main/java/com/beust/jcommander/JCommander.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -1096,7 +1096,7 @@ public void setProgramName(String name, String... aliases) {
10961096
public void usage() {
10971097
StringBuilder sb = new StringBuilder();
10981098
usageFormatter.usage(sb);
1099-
getConsole().print(sb.toString());
1099+
getConsole().print(sb);
11001100
}
11011101

11021102
/**
@@ -1105,7 +1105,7 @@ public void usage() {
11051105
public void usage(String commandName) {
11061106
StringBuilder sb = new StringBuilder();
11071107
usageFormatter.usage(commandName, sb);
1108-
getConsole().print(sb.toString());
1108+
getConsole().print(sb);
11091109
}
11101110

11111111
/**
@@ -1566,13 +1566,13 @@ public String getParsedAlias() {
15661566
/**
15671567
* @return n spaces
15681568
*/
1569-
private String s(int count) {
1569+
private CharSequence s(int count) {
15701570
StringBuilder result = new StringBuilder();
15711571
for (int i = 0; i < count; i++) {
15721572
result.append(" ");
15731573
}
15741574

1575-
return result.toString();
1575+
return result;
15761576
}
15771577

15781578
/**
@@ -1636,15 +1636,15 @@ public String getDisplayName() {
16361636
StringBuilder sb = new StringBuilder();
16371637
sb.append(name);
16381638
if (!aliases.isEmpty()) {
1639-
sb.append("(");
1639+
sb.append('(');
16401640
Iterator<String> aliasesIt = aliases.iterator();
16411641
while (aliasesIt.hasNext()) {
16421642
sb.append(aliasesIt.next());
16431643
if (aliasesIt.hasNext()) {
1644-
sb.append(",");
1644+
sb.append(',');
16451645
}
16461646
}
1647-
sb.append(")");
1647+
sb.append(')');
16481648
}
16491649
return sb.toString();
16501650
}

src/main/java/com/beust/jcommander/converters/PathConverter.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ public Path convert(String value) {
3939
try {
4040
return Paths.get(value);
4141
} catch (InvalidPathException e) {
42-
String encoded = escapeUnprintable(value);
42+
String encoded = escapeUnprintable(value).toString();
4343
throw new ParameterException(getErrorString(encoded, "a path"));
4444
}
4545
}
4646

47-
private static String escapeUnprintable(String value) {
47+
private static CharSequence escapeUnprintable(String value) {
4848
StringBuilder bldr = new StringBuilder();
4949
for (char c: value.toCharArray()) {
5050
if (c < ' ') {
@@ -53,6 +53,6 @@ private static String escapeUnprintable(String value) {
5353
bldr.append(c);
5454
}
5555
}
56-
return bldr.toString();
56+
return bldr;
5757
}
5858
}

src/main/java/com/beust/jcommander/internal/Console.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
public interface Console {
44

5-
void print(String msg);
5+
void print(CharSequence msg);
66

7-
void println(String msg);
7+
void println(CharSequence msg);
88

99
char[] readPassword(boolean echoInput);
1010
}

src/main/java/com/beust/jcommander/internal/DefaultConsole.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ public DefaultConsole() {
1818
this.target = System.out;
1919
}
2020

21-
public void print(String msg) {
21+
public void print(CharSequence msg) {
2222
target.print(msg);
2323
}
2424

25-
public void println(String msg) {
25+
public void println(CharSequence msg) {
2626
target.println(msg);
2727
}
2828

src/main/java/com/beust/jcommander/internal/JDK6Console.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ public JDK6Console(Object console) throws Exception {
1717
writer = (PrintWriter) writerMethod.invoke(console);
1818
}
1919

20-
public void print(String msg) {
20+
public void print(CharSequence msg) {
2121
writer.print(msg);
2222
}
2323

24-
public void println(String msg) {
24+
public void println(CharSequence msg) {
2525
writer.println(msg);
2626
}
2727

src/test/java/com/beust/jcommander/StringBuilderConsole.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ public StringBuilderConsole(StringBuilder output) {
1111
}
1212

1313
@Override
14-
public void print(String msg) {
14+
public void print(CharSequence msg) {
1515
output.append(msg);
1616
}
1717

1818
@Override
19-
public void println(String msg) {
19+
public void println(CharSequence msg) {
2020
print(msg);
2121
output.append('\n');
2222
}

0 commit comments

Comments
 (0)