Java 转换字符串或字符串数组为HashMap
考虑到一个字符串对象,它包含用逗号分隔的学生姓名和卷号,每个学生包含用冒号分隔的姓名和卷号。现在需要将String转换为Map对象,使每个学生的卷号成为HashMap的键,而名字成为HashMap对象的值。
为了将字符串转换为HashMap,该过程分为两部分。
- 输入的字符串被转换为一个字符串数组作为输出。
- 作为一个字符串数组的输入被转换成HashMap。
输入的字符串元素如下。
输入 : "Aashish:1, Bina:2, Chintu:3"
步骤 :
- 第一阶段:输入的字符串被转换为一个字符串数组作为输出。
- 第二阶段:将输入的字符串数组转换为HashMap。
步骤1:
- 首先,我们用逗号分割字符串,并将其存储在一个数组部分。分割后,我们有以下内容。
"Aashish:1","Bina:2", "Chintu:3"
- 然后迭代部分并分割学生数据,以获得学生姓名和卷号。并设置卷号为键,姓名为HashMap的值。
步骤2:
我们也可以将一个字符串数组转换为HashMap。假设我们有一个学生姓名的字符串数组和一个卷号数组,我们想将其转换为HashMap,这样卷号就成为HashMap的键,姓名就成为HashMap的值。
注意: 两个数组的大小应该是一样的。
输入的字符串元素数组如下,将在第1阶段输出
String stuName[] = {"Aashish","Bina","Chintu"}
Integer stuRollNo[] = {1,2,3}
步骤 :
- 遍历数组,并在HashMap中设置卷号为键,名称为值。
第一阶段 – 字符串到字符串阵列
// Convert String or String array to HashMap In Java
// Phase 1: Input- String converted to ArrayofStrings
// Importing java generic libraries
import java.util.*;
class GFG {
// Main driver method
public static void main(String[] args)
{
// String object that contains the student name and
// roll number separated by a comma
String student = "Aashish:1, Bina:2, Chintu:3";
// New HashMap obj
Map<String, String> hashMap
= new HashMap<String, String>();
// split the String by a comma
String parts[] = student.split(",");
// iterate the parts and add them to a HashMap
for (String part : parts) {
// split the student data by colon to get the
// name and roll number
String stuData[] = part.split(":");
String stuRollNo = stuData[0].trim();
String stuName = stuData[1].trim();
// Add to map
hashMap.put(stuRollNo, stuName);
}
// Print hashMap
System.out.println("String to HashMap: " + hashMap);
}
}
输出
String to HashMap: {Chintu=3, Bina=2, Aashish=1}
第二阶段 – 字符串到数组到HashMap
// Convert String or String array to HashMap In Java
// Phase 2: Input- Array of strings converted to HashMap.
// Importing java generic libraries
import java.util.*;
class GFG {
// Main driver method
public static void main(String[] args)
{
// String array that contains the student name
String stuName[] = { "Aashish", "Bina", "Chintu" };
// Integer array that contains roll number of the
// students
Integer stuRollNo[] = { 1, 2, 3 };
// New HashMap obj
Map<Integer, String> hashMap
= new HashMap<Integer, String>();
// Iterating over array of strings
for (int i = 0; i < stuName.length; i++) {
// And set roll no as key and the name as value
hashMap.put(stuRollNo[i], stuName[i]);
}
// Printing HashMap
System.out.println("String to hashmap: " + hashMap);
}
}
输出
String to hashmap: {1=Aashish, 2=Bina, 3=Chintu}