Java >> Tutoriel Java >  >> Tag >> String

Convertir une chaîne en carte Java

Convertir une chaîne en map Java | Comme nous le savons tous, la chaîne est la collection d'une séquence de caractères et une carte est une interface sous le cadre de la collection qui stocke les éléments sous la forme clé, paire de valeurs.

Les opérations de carte peuvent être effectuées avec une clé ou si vous souhaitez récupérer la valeur, vous pouvez utiliser la clé respective pour le faire. De plus, la carte ne stocke que des valeurs de clé uniques, par conséquent, aucune valeur en double n'est autorisée sur la carte. Maintenant, ce blog vous apprend à convertir la chaîne en carte. La chaîne a un type particulier d'éléments mais dans la carte, nous devons stocker les éléments sous la forme de paires clé et valeur. L'analyse de ce problème peut sembler difficile, mais ce blog vous aide à le résoudre facilement. Dans ce blog, nous utilisons deux méthodes pour le faire. Observez les exemples ci-dessous, vous pourriez obtenir plus de clarté.

Exemple :-
1. Chaîne ="Pomme :1, Banane :2, Mangue :3"
Carte ={Pomme=1, Mangue=3, Banane=2}
2. Tableau de chaînes ={ "Pomme", "Grenade", "Fraises", "Pastèques", "Raisins verts" }
Tableau d'entiers ={ 1, 2, 3, 4, 5 }
Carte ={ 1=Pomme, 2=Grenade, 3=Fraises, 4=Pastèques, 5=Raisins verts}
Dans cette section, nous allons implémenter les deux méthodes ci-dessus la première méthode consiste à convertir une seule chaîne à la carte la suivante prend deux tableaux de chaînes pour la clé et la valeur, puis le convertit en une carte.

Outre ces deux exemples, nous verrons également comment convertir une chaîne JSON en carte à l'aide de l'API Jackson. Exemple :-
Chaîne Json ={"pomme":"1″,"banane":"2″,"grenade":"4″,"Mangue":"6″}
Carte :{ pomme=1, banane=2, grenade=4, mangue=6}.

Programme Java pour convertir une chaîne en carte

import java.util.HashMap;
import java.util.Map;

public class Main {
   public static void main(String[] args) {
      String data = "Apple:1, Banana:2, Mango:3";
      Map<String, String> map = new HashMap<String, String>();

      String fruits[] = data.split(",");
      for (String fruit : fruits) {
         String string1[] = fruit.split(":");
         String string2 = string1[0].trim();
         String string3 = string1[1].trim();
         map.put(string2, string3);
      }

      System.out.println("String: " + data);
      System.out.println("Map: " + map);
   }
}

Sortie :-

Chaîne :Pomme :1, Banane :2, Mangue :3
Carte :{Pomme=1, Mangue=3, Banane=2}

Dans le programme ci-dessus pour convertir la chaîne en map Java, la chaîne contient le nom et la valeur du fruit qui sont séparés par deux points (:), et chaque fruit est séparé par une virgule. Par conséquent, nous avons d'abord divisé en fonction de la virgule, puis nous avons récupéré le nom et la valeur. Les deux données ont été placées sur la carte en tant que clé et valeur.

Convertir une chaîne en mappage Java

Nous allons maintenant voir un exemple où nous avons un tableau de chaînes et un tableau d'entiers. En utilisant ces deux tableaux, nous voulons créer une carte. Dans la carte, nous allons créer une valeur entière comme clé et un élément de chaîne comme valeur.

import java.util.HashMap;
import java.util.Map;

public class Main {
   public static void main(String[] args) {

      String fruits[] = { "Apple", "Pomegranate", 
        "Strawberries", "Watermelons", "Green Grapes" };
      Integer number[] = { 1, 2, 3, 4, 5 };

      Map<Integer, String> fruitMap = new HashMap<Integer, String>();
      for (int i = 0; i < fruits.length && i < number.length; i++) {
         fruitMap.put(number[i], fruits[i]);
      }

      System.out.println("Map: " + fruitMap);
   }
}

Sortie :-

Carte :{1=Pomme, 2=Grenade, 3=Fraises, 4=Pastèques, 5=Raisins verts}

Convertir la chaîne JSON en map Java

Pour convertir la chaîne JSON en carte, nous allons utiliser l'API Jackson. Pour cela, nous aurons besoin des dépendances suivantes :- Jackson-core, Jackson-databind &Jackson-annotations.

Nous avons le JSON suivant qui doit être converti en carte.

{
  "apple": "1",
  "banana": "2",
  "pomegranate": "4",
  "Mango": "6"
}

Programme Java pour convertir une chaîne JSON en carte à l'aide de l'API Jackson

import java.util.HashMap;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
   public static void main(String[] args) {
      String data = 
         "{\"apple\":\"1\",\"banana\":\"2\","
         + "\"pomegranate\":\"4\",\"Mango\":\"6\"}";
      System.out.println("String: " + data);
      
      try {
         HashMap<String, Integer> map = stringToMap(data);
         System.out.println("Map: " + map);
      } catch (JsonMappingException e) {
         e.printStackTrace();
      } catch (JsonProcessingException e) {
         e.printStackTrace();
      }
   }

   private static HashMap<String, Integer> stringToMap(String data) 
         throws JsonMappingException, JsonProcessingException {
      ObjectMapper objectMapper = new ObjectMapper();
      return objectMapper.readValue(data, 
            new TypeReference<HashMap<String, Integer>>(){});
   }
}

Sortie :-

Chaîne :{“apple”:”1″,”banana”:”2″,”pomegranate”:”4″,”Mango”:”6″}
Carte :{banana=2, apple=1, grenade=4, mangue=6}


Balise Java