nicht wollen?
Ich kann nicht helfen, wenn der Typ anders ist Sie können sicher mit allem umgehen, was mit String zu tun hat Zwecks
StringUtils.java
package utils;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.Arrays;
import java.util.HashMap;
/**
*String ist eine Klasse
*
* @author Mr.Extreme Vielseitigkeit
*
*/
public class StringUtils {
/**Mehrere Zeichenfolgenargumente*/
private static final List<String> MULTIPLE_STRING = Arrays.asList("a", null, "b", "", "3");
/**
*Experimental-
*
* @param args
*/
public static void main(String[] args) {
System.out.println(extraction(MULTIPLE_STRING));
}
/**
* {@code null}Zu leeren.<br>
* {@code null}Wie es nicht ist.
*
* @param str Zeichenkette eingeben
* @Konvertierungsergebnis zurückgeben
*/
private static String nullToBlank(String str) {
return Objects.toString(str, "");
}
/**
* {@code null}Zu leeren.<br>
* {@code null}Wie es nicht ist.
* <p>
*Das Argument selbst{@code null}Oder wenn die Anzahl der Elemente 0 ist,Gibt eine leere Liste zurück.
*
* @Param Listeneingabe{@code List<String>}
* @Konvertierungsergebnis zurückgeben
*/
private static List<String> nullToBlank(List<String> list) {
if (list != null)
return list.stream().map(StringUtils::nullToBlank).collect(Collectors.toList());
return Arrays.asList();
}
/**
*Trat ein{@code List<String>}Im<br>
* {@code null}Und eliminiere leere Zeichen
*
* @Param Listeneingabe{@code List<String>}
* @Konvertierungsergebnis zurückgeben
*/
private static List<String> nullBlankSmasher(List<String> list) {
return nullToBlank(list).stream().filter(v -> !v.isEmpty()).collect(Collectors.toList());
}
/**
* {@code Map<String, Integer>}Gegen
* <p>
* <ul>
* <li>Wenn die eingegebene Zeichenfolge in einen numerischen Wert konvertiert werden kann<br>
* {Leerer Charakter,Zahlenwert nach Konvertierung}Gib es zurück<br>
* <li>Wenn die eingegebene Zeichenfolge nicht in einen numerischen Wert konvertiert werden kann<br>
* {Zeichenfolge vor der Konvertierung, {@code null}}Gib es zurück
* </ul>
*
* @param map Karte zur Speicherung
* @param str Zu konvertierende Zeichenfolge
*/
private static void store(Map<String, Integer> map, String str) {
try {
map.put("", Integer.parseInt(str));
} catch (NumberFormatException e) {
map.put(str, null);
}
}
/**
*Konvertieren Sie das, was numerisch konvertiert werden kann, und sortieren Sie das, was nicht ist, unverändert.
* <p>
* <ul>
* <li>Wenn die eingegebene Zeichenfolge in einen numerischen Wert konvertiert werden kann<br>
* {Leerer Charakter,Zahlenwert nach Konvertierung}Gib es zurück<br>
* <li>Wenn die eingegebene Zeichenfolge nicht in einen numerischen Wert konvertiert werden kann<br>
* {Zeichenfolge vor der Konvertierung, {@code null}}Gib es zurück
* </ul>
*
* @Param Listeneingabe{@code List<String>}
* @Rückgabe Sortierergebnis
*/
private static Map<String, Integer> toInteger(List<String> list) {
Map<String, Integer> map = new HashMap<String, Integer>();
nullBlankSmasher(list).forEach(v -> {
store(map, v);
});
return map;
}
/**
*Führen Sie die folgenden Vorgänge für die Liste der eingegebenen Zeichenfolgen aus
* <p>
* <ul>
* <li>{@code null}Und leere Buchstaben entfernen
* <li>Konvertieren Sie eine Zeichenfolge, die in einen numerischen Wert konvertiert werden kann, in einen numerischen Wert
* <li>Mit einer Liste von Zeichenfolgen, die nicht konvertiert werden konnten,Gibt nach der Konvertierung eine Karte der Liste der Zahlen zurück
* </ul>
*
* @Param Listeneingabe{@code List<String>}
* @Rückgabe Sortierergebnis
*/
private static Map<List<String>, List<Integer>> extraction(List<String> list) {
Map<List<String>, List<Integer>> map = new HashMap<List<String>, List<Integer>>();
map.put(toInteger(list).keySet().stream().filter(v -> !v.isEmpty()).collect(Collectors.toList()),
toInteger(list).values().stream().filter(Objects::nonNull).collect(Collectors.toList()));
return map;
}
}
ich habe es gemacht
Eingabewert: Liste
Entspricht dem Eingabewert Null und die Anzahl der Elemente 0 Machen Sie nicht alles auf einmal, sondern machen Sie es für jedes Teil separat Ermöglicht die Handhabung, wenn Sie nur ein Teil verwenden möchten
Ich möchte es mit Objekttyp und Optional zu einem allgemeineren Fenster machen
Nun, es ist schwierig ...
Ich möchte eine universelle Droge
Recommended Posts