Java 使用CSV文件中的整数初始化相应的整数

Java 使用CSV文件中的整数初始化相应的整数,java,arrays,csv,Java,Arrays,Csv,我正在做一个基于文本的游戏,在暗影中模拟装饰的命令提示符下运行。理想情况下,玩家应该能够拥有一个包含所有角色相关信息的CSV文件(65行,2列),并且这些信息应该能够上传到程序中 我正处于正确加载csv文件并正确显示所有内容的位置,同时仍处于循环中。在我的一生中,我无法弄清楚如何从循环中获取值,并将其转换为我可以用来设置各种角色统计值的内容。我的代码片段如下所示: public class Program { static int[][] Character = new int[65][2];

我正在做一个基于文本的游戏,在暗影中模拟装饰的命令提示符下运行。理想情况下,玩家应该能够拥有一个包含所有角色相关信息的CSV文件(65行,2列),并且这些信息应该能够上传到程序中

我正处于正确加载csv文件并正确显示所有内容的位置,同时仍处于循环中。在我的一生中,我无法弄清楚如何从循环中获取值,并将其转换为我可以用来设置各种角色统计值的内容。我的代码片段如下所示:

public class Program {
static int[][] Character = new int[65][2];

public static void main (String[]args) {
  Scanner user_input = new Scanner(System.in);
  String DeckerName;
  System.out.println("What is your name? (Name of your .csv file)"); //Load Decker character
  DeckerName = user_input.nextLine();
  System.out.println("Alright, " + DeckerName + ".  Jacking into the Matrix now...");

  String csvFile = "FILE LOCATION";
  BufferedReader br = null;
  String line = "";
  String cvsSplitBy = ",";
  Scanner loader = new Scanner(System.in);

//Opens and loads .csv file into an array      
  try {
   br = new BufferedReader(new FileReader(csvFile));
   while ((line = br.readLine()) != null) {
    String characterload[] = line.split(cvsSplitBy);
    System.out.println ("" + characterload[0] + ": " + characterload[1]); // for testing purposes, characterload[0] is a text description, characterload[1] is an integer
    int intDeckerProgram = Integer.parseInt(characterload[1]);
    System.out.println(intDeckerProgram); //for testing purposes
    for (int i = 0; i < characterload.length; i++)
    {
      Character[i][1] = intDeckerProgram;
      System.out.println(Character[i][1]); //for testing purposes
    }
   }
  } catch (FileNotFoundException e) {
    e.printStackTrace();
  } catch (IOException e) {
    e.printStackTrace();
  } finally {
    if (br!= null) {
      try {
        br.close();
      } catch (IOException e) {
    e.printStackTrace();
      }
    }
  }

  int DeckerDetectionFactor = Character[0][1];
  System.out.println(Character[0][1]); //for testing purposes
  System.out.println(DeckerDetectionFactor); //for testing purposes
  int DeckerHackingPool = Character[1][1];
  System.out.println(Character[1][1]); //for testing purposes
  System.out.println(DeckerHackingPool); //for testing purposes
公共类程序{
静态int[][]字符=新int[65][2];
公共静态void main(字符串[]args){
扫描仪用户输入=新扫描仪(System.in);
弦纹纹;
System.out.println(“您的名字是什么?(您的.csv文件名)”;//加载Decker字符
DeckerName=user_input.nextLine();
System.out.println(“好的,+DeckerName+”。现在进入矩阵…);
字符串csvFile=“文件位置”;
BufferedReader br=null;
字符串行=”;
字符串cvsSplitBy=“,”;
扫描仪加载程序=新扫描仪(System.in);
//打开.csv文件并将其加载到数组中
试一试{
br=新的BufferedReader(新的文件读取器(csvFile));
而((line=br.readLine())!=null){
String characterload[]=行分割(cvsSplitBy);
System.out.println(“+characterload[0]+”:“+characterload[1]);//出于测试目的,characterload[0]是文本描述,characterload[1]是整数
int intDeckerProgram=Integer.parseInt(characterload[1]);
System.out.println(intDeckerProgram);//用于测试目的
对于(int i=0;i
TL;DR在不下载其他java软件包的情况下,如何将导入的值导入characterload数组,并将其放入Character数组,以便正确初始化我的整数?感谢您抽出时间,我非常感谢


编辑:底部的两个值,DeckerDetectionFactor和DeckerHackingPool,需要分别为6和9(此信息来自CSV文件)。我想了解一下如何确保这些值正确加载到字符[][]数组,以便正确初始化变量,而不是将变量设置为0。

在给出了一些有用的建议后,我最终从While循环中删除了内部For循环。设置一个行整数,然后再加上递增,解决了整个问题。如果这对任何人都有帮助,下面是我现在使用的代码:

...
   br = new BufferedReader(new FileReader(csvFile));
   int row = 0;
   while ((line = br.readLine()) != null) {
    String characterload[] = line.split(cvsSplitBy);
    int intDeckerProgram = Integer.parseInt(characterload[1]);
      Character[row][1] = intDeckerProgram;
      row++;
   }
...

乍一看,您的代码似乎在做您想要做的事情,所以您是否面临任何错误?严格意义上不是错误,但底部的两个值DeckerDetectionFactor和DeckerHackingPool需要分别为6和9(来自CSV)。在编写代码时,它们最终返回0的值。我想我正在寻找如何确保字符[][]的一点方向是它需要在循环之外的值。我投票结束这个问题,因为这是在要求对工作代码进行审查,这是完全公平的-我很抱歉将其张贴在错误的区域!我以为我投票解决了这个问题,但显然没有。谢谢你将其公诸于众!