当前位置: 首页 > 知识库问答 >
问题:

如何将项目添加到列表列表中

江鹏
2023-03-14

我的目标是从用户输入的“AM”-“PM”字符串格式打印包含24小时十进制格式的进入和退出时间的列表,如以下字符串数组:{6AM#8AM,11AM#1PM,7AM#8PM,7AM#8AM,10AM#12PM,12PM#4PM,1PM#4PM,8AM#9AM}

我在for循环中声明了各个列表,并在循环中为它们赋值,但从代码中得到了以下运行时异常:java。lang.IndexOutOfBoundsException:索引:0,大小:0

请帮我调试代码:

import java.util.*;

public class TimeSchedule
{  
  public static List<List<Integer>> Timein24hourFormat(String[] input1)
  {
    List<List<Integer>> scheduledTime = new ArrayList<List<Integer>>();
    int [] exitTime = new int[input1.length];
    int [] entryTime = new int[input1.length];
    for (int i=0;i<input1.length;i++)
    { 
      List<String> listOfStrings = new ArrayList<>();
      List<Integer> tempList = scheduledTime.get(i);
      String[] timeSlot = input1[i].split("#");
      for (int m=0;m<2;m++)
      {
        listOfStrings.add(timeSlot[m]);
        if (listOfStrings.contains("AM"))
        { 
          listOfStrings.remove("AM");
          tempList.add(Integer.parseInt(listOfStrings.get(m)));
        }
        if (listOfStrings.contains("PM") && timeSlot[m].contains("12"))
        {
          listOfStrings.remove("PM");
          tempList.add(Integer.parseInt(listOfStrings.get(m)));
        }
        if (listOfStrings.contains("PM") && !timeSlot[m].contains("12"))
        {
          listOfStrings.remove("PM");
          tempList.add((Integer.parseInt(listOfStrings.get(m))) + 12);
        }
      }
     }
    return scheduledTime;
   }

  public static void main (String[]args)
  { 
    Scanner input = new Scanner(System.in);
    int customersNumber = input.nextInt();
    input.nextLine();
    String [] entryExitTime = new String[customersNumber];
    for (int i=0;i<customersNumber;i++)
    {
      entryExitTime[i] = input.nextLine();
    }
    System.out.println(Timein24hourFormat(entryExitTime));
  }
 }

共有1个答案

云建木
2023-03-14
public static List<List<Integer>> Timein24hourFormat(String[] input1)
  {
    List<List<Integer>> scheduledTime = new ArrayList<List<Integer>>();
    int [] exitTime = new int[input1.length];
    int [] entryTime = new int[input1.length];
    for (int i=0;i<input1.length;i++)
  { 
    List<String> listOfStrings = new ArrayList<>();
    List<Integer> tempList = scheduledTime.get(i);
    String[] timeSlot = input1[i].split("#");

在这个阶段,计划时间是空的,这就是为什么你不能检索值,你会得到IndexOutOfBoundsExcure

 类似资料:
  • 本文向大家介绍Visual Basic .NET将项目添加到列表,包括了Visual Basic .NET将项目添加到列表的使用技巧和注意事项,需要的朋友参考一下 示例 要一次添加多个项目,请使用AddRange。始终添加到列表的末尾 为了将项目添加到列表的中间,请使用插入 插入将把该项目放置在索引处,并对其余项目重新编号 新输出:            

  • < code>list_of_lists=[[1,2,3],[4,5,6]] < br > < code > list _ to _ add =[" A "," B "," C"] 我希望结果是list_of_lists会变成: 谢谢!

  • 问题内容: 在我的json响应中,我想使用$ .each遍历它,然后将项目附加到元素。 我想添加一个 ,并创建一个链接到用户页面的href标签。 问题答案: 最有效的方法是创建一个数组并将其附加到dom一次。 您可以通过丢失字符串中的所有字符串concat使它变得更好。要么多次推送到数组,要么使用+ =构建字符串,然后推送,但是对于某些人来说,读取起来会有点困难。 同样,您也可以将所有项目包装在一

  • 很容易将列表列表转换为数据帧: 但是我如何将df转换回列表列表呢?

  • 问题内容: 我使用SQLAlchemy制作了一个表,却忘记添加列。我基本上想这样做: 这是什么语法?我在文档中找不到它。 问题答案: 这称为数据库迁移(SQLAlchemy不支持即开即用的迁移)。您可以考虑使用sqlalchemy- migrate 在这种情况下提供帮助,也可以仅通过选择的数据库的命令行实用程序,

  • 问题内容: 与此问题类似,如何将空列添加到数据框?,我想知道向DataFrame添加一列空列表的最佳方法。 我想要做的基本上是初始化一列,然后遍历行以处理其中的一些行,然后在此新列中添加填充列表以替换初始化的值。 例如,如果下面是我的初始DataFrame: 然后,我最终希望得到这样的结果,其中每一行都经过单独处理(显示了示例结果): 当然,如果我尝试像使用其他任何常量一样进行初始化,它会认为我正