Skip to content

Commit 64771c5

Browse files
Use String.join() and Collectors.joining().
1 parent fc8b5eb commit 64771c5

4 files changed

Lines changed: 13 additions & 42 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,13 +136,8 @@ public String getUploaderAvatarUrl() {
136136
@Nonnull
137137
@Override
138138
public Description getDescription() {
139-
final String s = Utils.nonEmptyAndNullJoin(
140-
"\n\n",
141-
new String[] {
142-
current.getString("about"),
143-
current.getString("lyrics"),
144-
current.getString("credits")
145-
});
139+
final String s = Utils.nonEmptyAndNullJoin("\n\n", current.getString("about"),
140+
current.getString("lyrics"), current.getString("credits"));
146141
return new Description(s, Description.PLAIN_TEXT);
147142
}
148143

extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper;
1717
import org.schabi.newpipe.extractor.stream.StreamInfoItem;
1818
import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
19-
import org.schabi.newpipe.extractor.utils.Utils;
2019

2120
import java.io.IOException;
2221
import java.util.ArrayList;
@@ -165,7 +164,7 @@ public InfoItemsPage<StreamInfoItem> getPage(final Page page) throws IOException
165164
}
166165

167166
final String currentPageUrl = SOUNDCLOUD_API_V2_URL + "tracks?client_id="
168-
+ SoundcloudParsingHelper.clientId() + "&ids=" + Utils.join(",", currentIds);
167+
+ SoundcloudParsingHelper.clientId() + "&ids=" + String.join(",", currentIds);
169168

170169
final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId());
171170
final String response = NewPipe.getDownloader().get(currentPageUrl,

extractor/src/main/java/org/schabi/newpipe/extractor/utils/Utils.java

Lines changed: 8 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,12 @@
66
import java.net.MalformedURLException;
77
import java.net.URL;
88
import java.net.URLDecoder;
9-
import java.util.ArrayList;
109
import java.util.Arrays;
1110
import java.util.Collection;
12-
import java.util.Iterator;
13-
import java.util.LinkedList;
14-
import java.util.List;
1511
import java.util.Map;
1612
import java.util.Objects;
1713
import java.util.regex.Pattern;
14+
import java.util.stream.Collectors;
1815

1916
import javax.annotation.Nonnull;
2017
import javax.annotation.Nullable;
@@ -310,42 +307,25 @@ public static boolean isBlank(final String string) {
310307
return true;
311308
}
312309

313-
@Nonnull
314-
public static String join(final CharSequence delimiter,
315-
@Nonnull final Iterable<? extends CharSequence> elements) {
316-
final StringBuilder stringBuilder = new StringBuilder();
317-
final Iterator<? extends CharSequence> iterator = elements.iterator();
318-
while (iterator.hasNext()) {
319-
stringBuilder.append(iterator.next());
320-
if (iterator.hasNext()) {
321-
stringBuilder.append(delimiter);
322-
}
323-
}
324-
return stringBuilder.toString();
325-
}
326-
327310
@Nonnull
328311
public static String join(
329312
final String delimiter,
330313
final String mapJoin,
331314
@Nonnull final Map<? extends CharSequence, ? extends CharSequence> elements) {
332-
final List<String> list = new LinkedList<>();
333-
for (final Map.Entry<? extends CharSequence, ? extends CharSequence> entry
334-
: elements.entrySet()) {
335-
list.add(entry.getKey() + mapJoin + entry.getValue());
336-
}
337-
return join(delimiter, list);
315+
return elements.entrySet().stream()
316+
.map(entry -> entry.getKey() + mapJoin + entry.getValue())
317+
.collect(Collectors.joining(delimiter));
338318
}
339319

340320
/**
341321
* Concatenate all non-null, non-empty and strings which are not equal to <code>"null"</code>.
342322
*/
343323
@Nonnull
344324
public static String nonEmptyAndNullJoin(final CharSequence delimiter,
345-
final String[] elements) {
346-
final List<String> list = new ArrayList<>(Arrays.asList(elements));
347-
list.removeIf(s -> isNullOrEmpty(s) || s.equals("null"));
348-
return join(delimiter, list);
325+
final String... elements) {
326+
return Arrays.stream(elements)
327+
.filter(s -> !isNullOrEmpty(s) && !s.equals("null"))
328+
.collect(Collectors.joining(delimiter));
349329
}
350330

351331
/**

extractor/src/test/java/org/schabi/newpipe/extractor/utils/UtilsTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@
33
import org.junit.jupiter.api.Test;
44
import org.schabi.newpipe.extractor.exceptions.ParsingException;
55

6-
import javax.annotation.Nonnull;
7-
import java.util.Arrays;
8-
96
import static org.junit.jupiter.api.Assertions.assertEquals;
107

118
class UtilsTest {
@@ -20,8 +17,8 @@ void testMixedNumberWordToLong() throws ParsingException {
2017

2118
@Test
2219
void testJoin() {
23-
assertEquals("some,random,stuff", Utils.join(",", Arrays.asList("some", "random", "stuff")));
24-
assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",", new String[]{"some", "null", "random", "", "not-null", null, "stuff"}));
20+
assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",",
21+
"some", "null", "random", "", "not-null", null, "stuff"));
2522
}
2623

2724
@Test

0 commit comments

Comments
 (0)