gpt4 book ai didi

java - 需要帮助在 Java 中将数组转换为另一个数组

转载 作者:行者123 更新时间:2023-11-30 04:09:12 26 4
gpt4 key购买 nike

我需要组织这个数组。String [] Students={"Paul", "A", "Paul", "B", "Mike", "B", "Cindy", "A", "Cindy", "B", "辛迪”,“C”}

目标是

字符串 [][] 成绩={{"Paul", "A", "B"} , {"Mike", "B"} , {"Cindy", "A", "B",“C”}}

请帮忙

我尝试了以下方法:

int numberOfFirstGuyElements = StringUtils.countMatches(students, students[0]);
for (int i = 0; i < numberOfFirstGuyElements*2; i++) {
String s+i = students[i] + "," students[i+1];
}

我无法动态分配数组名称

最佳答案

您可以执行以下操作来实现您提到的功能:

1 声明一个List,类型为List< List< String > > 。它用于存储学生成绩信息,例如

  [[Paul, A, B], [Mike, B], [Cindy, A, B, C]]

2 循环您在下面声明的学生数组并填充每个学生的成绩,

以学生Paul为例,学生成绩列表类型 List<String>包含[Paul, A, B]

字符串[]学生={“保罗”,“A”,“保罗”,“B”,“迈克”,“B”,“辛迪”,“A”,“辛迪”,“B”,“辛迪”、“C”}

3 将 Studnets-grades 列表 ( List< List< String > > ) 转换为 String[][] 的成绩类型.

下面是使用上述 3 个步骤的示例:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


public class Example {

public static void main(String[] args) {
String [] students={"Paul", "A", "Paul", "B", "Mike", "B", "Cindy", "A", "Cindy", "B", "Cindy", "C"};

String[][] grades = convertArray(students);

System.out.println("Student - Grades iformation is as follows: ");

for(String[] stuGrade : grades)
{
System.out.println(Arrays.toString(stuGrade));
}
}

public static String[][] convertArray(String[] students)
{
List<List<String>> stuGradeList = new ArrayList<List<String>>();

List<String> tempStuGrade = new ArrayList<String>();
for(int i =0; i< students.length; i++)
{
/*
* Handles Name information
*/
if(i%2 == 0)
{
if(!tempStuGrade.contains(students[i]))
{
if(tempStuGrade.isEmpty())
{
tempStuGrade.add(students[i]);
}else
{
stuGradeList.add(new ArrayList<String>(tempStuGrade));

/*
* Student changed
*
* Clear the original list and put the new Student name into temp list
*/
tempStuGrade.clear();
tempStuGrade.add(students[i]);
}
}

}else
{
//Add Grade to list directly
tempStuGrade.add(students[i]);


if(i == students.length-1)
{
stuGradeList.add(new ArrayList<String>(tempStuGrade));
}
}
}

String[][] grades = new String[stuGradeList.size()][];

/*
* Put value of List<List<String>> into 2D Array (String[][])
*/
for(int i = 0;i <stuGradeList.size(); i++)
{
grades[i] = new String[stuGradeList.get(i).size()];
grades[i] = stuGradeList.get(i).toArray(grades[i]);
}

return grades;
}
}

成绩类型为String[][],其在Console中打印的结果如下:

Student - Grades iformation is as follows: 
[Paul, A, B]
[Mike, B]
[Cindy, A, B, C]

关于java - 需要帮助在 Java 中将数组转换为另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com