[JAVA] Quel genre de StringUtil est bon

Je veux une méthode qui puisse tout faire avec ça

ne veut pas?

Quel genre de chose est bon

Je ne peux pas aider si le type est différent Vous pouvez gérer en toute sécurité tout ce qui concerne String Dans le but de

Je vais l'essayer pour le moment

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 est une classe
 * 
 * @author Mr.Polyvalence extrême
 *
 */
public class StringUtils {

	/**Arguments de chaîne multiples*/
	private static final List<String> MULTIPLE_STRING = Arrays.asList("a", null, "b", "", "3");

	/**
	 *expérimental
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println(extraction(MULTIPLE_STRING));
	}

	/**
	 * {@code null}Pour vider.<br>
	 * {@code null}Comme ce n'est pas.
	 * 
	 * @param str Chaîne de caractères d'entrée
	 * @retourner le résultat de la conversion
	 */
	private static String nullToBlank(String str) {
		return Objects.toString(str, "");
	}

	/**
	 * {@code null}Pour vider.<br>
	 * {@code null}Comme ce n'est pas.
	 * <p>
	 *L'argument lui-même{@code null}Ou lorsque le nombre d'éléments est égal à 0,Renvoie une liste vide.
	 * 
	 * @entrée de la liste de paramètres{@code List<String>}
	 * @retourner le résultat de la conversion
	 */
	private static List<String> nullToBlank(List<String> list) {
		if (list != null)
			return list.stream().map(StringUtils::nullToBlank).collect(Collectors.toList());
		return Arrays.asList();
	}

	/**
	 *Entré{@code List<String>}Dans<br>
	 * {@code null}Et éliminez les personnages vides
	 * 
	 * @entrée de la liste de paramètres{@code List<String>}
	 * @retourner le résultat de la conversion
	 */
	private static List<String> nullBlankSmasher(List<String> list) {
		return nullToBlank(list).stream().filter(v -> !v.isEmpty()).collect(Collectors.toList());
	}

	/**
	 * {@code Map<String, Integer>}Contre
	 * <p>
	 * <ul>
	 * <li>Quand la chaîne de caractères saisie peut être convertie en une valeur numérique<br>
	 * {Caractères vides,Valeur numérique après conversion}rends le<br>
	 * <li>Lorsque la chaîne de caractères saisie ne peut pas être convertie en valeur numérique<br>
	 * {Chaîne de caractères avant la conversion, {@code null}}rends le
	 * </ul>
	 * 
	 * @carte des paramètres Carte pour le stockage
	 * @param str Chaîne de caractères à convertir
	 */
	private static void store(Map<String, Integer> map, String str) {
		try {
			map.put("", Integer.parseInt(str));
		} catch (NumberFormatException e) {
			map.put(str, null);
		}
	}

	/**
	 *Convertir ce qui peut être converti numériquement et trier ce qui ne l'est pas, inchangé.
	 * <p>
	 * <ul>
	 * <li>Quand la chaîne de caractères saisie peut être convertie en une valeur numérique<br>
	 * {Caractères vides,Valeur numérique après conversion}rends le<br>
	 * <li>Lorsque la chaîne de caractères saisie ne peut pas être convertie en valeur numérique<br>
	 * {Chaîne de caractères avant la conversion, {@code null}}rends le
	 * </ul>
	 * 
	 * @entrée de la liste de paramètres{@code List<String>}
	 * @retour Résultat du tri
	 */
	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;
	}

	/**
	 *Effectuez les opérations suivantes sur la liste des chaînes de caractères d'entrée
	 * <p>
	 * <ul>
	 * <li>{@code null}Et supprimer les lettres vides
	 * <li>Convertir une chaîne de caractères pouvant être convertie en une valeur numérique en une valeur numérique
	 * <li>Avec une liste de chaînes qui n'ont pas pu être converties,Renvoie une carte de la liste des nombres après la conversion
	 * </ul>
	 * 
	 * @entrée de la liste de paramètres{@code List<String>}
	 * @retour Résultat du tri
	 */
	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;
	}

}

Qu'est-ce que c'est ça

je l'ai fait

Valeur d'entrée: List Valeur de sortie; Map <List , List > En traitement: Si un élément de la liste des chaînes de caractères d'entrée peut être converti en valeur numérique, il est converti en valeur numérique. Laissez ce qui ne peut pas être converti Séparer en une liste de chaînes et une liste de nombres et les stocker dans la carte

Ce dont j'étais conscient

Correspondance avec laquelle la valeur d'entrée est nulle et le nombre d'éléments est 0 Ne faites pas tout en même temps, mais faites-le séparément pour chaque partie Rendu possible de gérer lorsque vous ne souhaitez utiliser qu'une pièce

Mauvais endroit

Je veux en faire une fenêtre plus générale en utilisant le type d'objet et facultatif

Et bien c'est difficile ...

Je veux un médicament universel

Recommended Posts

Quel genre de StringUtil est bon
Quel type de méthode est define_method?
'% 02d' Quel est le% de% 2?
Qu'Est-ce que c'est? ~ 3 types de "non" ~
Road to Java Engineer Part2 Quel type de langage est Java?
Qu'est-ce qu'un test? ・ À propos de l'importance d'un test
Quelle est la structure des données d'ActionText?
Qu'est-ce que Cubby
Qu'est-ce qui est nul? ]
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
Qu'est-ce que soi
Qu'est-ce que Jenkins
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce que la façade? ??
Qu'est-ce que Java <>?
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
Qu'est-ce que RubyGem?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Byte?
Qu'est-ce que Tomcat
Qu'est-ce que JSP? ~ Connaissons les bases de JSP !! ~
Qu'est-ce que l'assemblage Maven?
Vérifiez l'existence de has_many et appartient_to-optional: Qu'est-ce qui est vrai?
Qu'est-ce que `docker-compose up`?
Qu'est-ce qu'un constructeur
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
La comparaison d'énumération est ==, et equals est bonne [Java]
Qu'est-ce que le moi de Ruby?
Qu'est-ce que le codage en dur?
Qu'est-ce qu'un flux
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce que l'encapsulation Java?
Qu'est-ce qu'une permission refusée?
Qu'est-ce que le contrôle d'instance?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?
Qu'est-ce que l'orientation objet?
Qu'est-ce que le @VisibleForTesting de Guava?
Qu'est-ce qu'un modèle MVC?
Qu'est-ce qu'une annotation?
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
Qu'est-ce que @ (variable d'instance)?
Qu'est-ce que l'artefact de Gradle?
Qu'est-ce que l'audit JPA?
[Java] Qu'est-ce que flatMap?