Use String.join() and Collectors.joining().

This commit is contained in:
Isira Seneviratne 2022-07-28 07:38:28 +05:30
parent fc8b5ebbc6
commit 64771c5712
4 changed files with 13 additions and 42 deletions

View File

@ -136,13 +136,8 @@ public class BandcampStreamExtractor extends StreamExtractor {
@Nonnull @Nonnull
@Override @Override
public Description getDescription() { public Description getDescription() {
final String s = Utils.nonEmptyAndNullJoin( final String s = Utils.nonEmptyAndNullJoin("\n\n", current.getString("about"),
"\n\n", current.getString("lyrics"), current.getString("credits"));
new String[] {
current.getString("about"),
current.getString("lyrics"),
current.getString("credits")
});
return new Description(s, Description.PLAIN_TEXT); return new Description(s, Description.PLAIN_TEXT);
} }

View File

@ -16,7 +16,6 @@ import org.schabi.newpipe.extractor.playlist.PlaylistExtractor;
import org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper; import org.schabi.newpipe.extractor.services.soundcloud.SoundcloudParsingHelper;
import org.schabi.newpipe.extractor.stream.StreamInfoItem; import org.schabi.newpipe.extractor.stream.StreamInfoItem;
import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector; import org.schabi.newpipe.extractor.stream.StreamInfoItemsCollector;
import org.schabi.newpipe.extractor.utils.Utils;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
@ -165,7 +164,7 @@ public class SoundcloudPlaylistExtractor extends PlaylistExtractor {
} }
final String currentPageUrl = SOUNDCLOUD_API_V2_URL + "tracks?client_id=" final String currentPageUrl = SOUNDCLOUD_API_V2_URL + "tracks?client_id="
+ SoundcloudParsingHelper.clientId() + "&ids=" + Utils.join(",", currentIds); + SoundcloudParsingHelper.clientId() + "&ids=" + String.join(",", currentIds);
final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId()); final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId());
final String response = NewPipe.getDownloader().get(currentPageUrl, final String response = NewPipe.getDownloader().get(currentPageUrl,

View File

@ -6,15 +6,12 @@ import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.net.URL; import java.net.URL;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Objects; import java.util.Objects;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import java.util.stream.Collectors;
import javax.annotation.Nonnull; import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -310,31 +307,14 @@ public final class Utils {
return true; return true;
} }
@Nonnull
public static String join(final CharSequence delimiter,
@Nonnull final Iterable<? extends CharSequence> elements) {
final StringBuilder stringBuilder = new StringBuilder();
final Iterator<? extends CharSequence> iterator = elements.iterator();
while (iterator.hasNext()) {
stringBuilder.append(iterator.next());
if (iterator.hasNext()) {
stringBuilder.append(delimiter);
}
}
return stringBuilder.toString();
}
@Nonnull @Nonnull
public static String join( public static String join(
final String delimiter, final String delimiter,
final String mapJoin, final String mapJoin,
@Nonnull final Map<? extends CharSequence, ? extends CharSequence> elements) { @Nonnull final Map<? extends CharSequence, ? extends CharSequence> elements) {
final List<String> list = new LinkedList<>(); return elements.entrySet().stream()
for (final Map.Entry<? extends CharSequence, ? extends CharSequence> entry .map(entry -> entry.getKey() + mapJoin + entry.getValue())
: elements.entrySet()) { .collect(Collectors.joining(delimiter));
list.add(entry.getKey() + mapJoin + entry.getValue());
}
return join(delimiter, list);
} }
/** /**
@ -342,10 +322,10 @@ public final class Utils {
*/ */
@Nonnull @Nonnull
public static String nonEmptyAndNullJoin(final CharSequence delimiter, public static String nonEmptyAndNullJoin(final CharSequence delimiter,
final String[] elements) { final String... elements) {
final List<String> list = new ArrayList<>(Arrays.asList(elements)); return Arrays.stream(elements)
list.removeIf(s -> isNullOrEmpty(s) || s.equals("null")); .filter(s -> !isNullOrEmpty(s) && !s.equals("null"))
return join(delimiter, list); .collect(Collectors.joining(delimiter));
} }
/** /**

View File

@ -3,9 +3,6 @@ package org.schabi.newpipe.extractor.utils;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.ParsingException;
import javax.annotation.Nonnull;
import java.util.Arrays;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
class UtilsTest { class UtilsTest {
@ -20,8 +17,8 @@ class UtilsTest {
@Test @Test
void testJoin() { void testJoin() {
assertEquals("some,random,stuff", Utils.join(",", Arrays.asList("some", "random", "stuff"))); assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",",
assertEquals("some,random,not-null,stuff", Utils.nonEmptyAndNullJoin(",", new String[]{"some", "null", "random", "", "not-null", null, "stuff"})); "some", "null", "random", "", "not-null", null, "stuff"));
} }
@Test @Test