当前位置: 首页 > 面试题库 >

在JAVA中将CSV值转换为HashMap键值对

邓令雪
2023-03-14
问题内容

嗨,我有一个csv叫做test.csv。我试图逐行读取csv并将值转换为哈希键值对。这是代码:-

public class Example {
public static void main(String[] args) throws ParseException, IOException {
    // TODO Auto-generated method stub

    BufferedReader br = new BufferedReader(new FileReader("test.csv"));
    String line =  null;
    HashMap<String,String> map = new HashMap<String, String>();

    while((line=br.readLine())!=null){
        String str[] = line.split(",");
        for(int i=0;i<str.length;i++){
            String arr[] = str[i].split(":");
            map.put(arr[0], arr[1]);
        }
    }
    System.out.println(map);
 }
}

csv文件如下:-

1,"testCaseName":"ACLTest","group":"All_Int","projectType":"GEN","vtName":"NEW_VT","status":"ACTIVE","canOrder":"Yes","expectedResult":"duplicateacltrue"
2,"testCaseName":"DCLAddTest","group":"India_Int","projectType":"GEN_NEW","vtName":"OLD_VT","status":"ACTIVE","canOrder":"Yes","expectedResult":"invalidfeaturesacltrue"

当我运行此代码时,出现此错误:-

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
    Example.main(Example.java:33)

谁能帮助我修复代码并找出程序中的错误?


问题答案:

在字符串中,当你把它分解的第一次只包含arr[0]1没有在arr[1]这样就会导致异常

如果不需要1,2等。可以查看以下代码:

        String str[] = line.split(",");
        for(int i=1;i<str.length;i++){
            String arr[] = str[i].split(":");
            map.put(arr[0], arr[1]);
        }


 类似资料:
  • 问题内容: 这里有人知道在Java中将csv文件转换为xls或xlsx文件的任何快速,干净的方法吗? 我已经有一些东西可以管理csv文件,并且我需要与其他程序具有额外的兼容性。 除了包名称外,示例代码始终受到人们的赞赏。 非常感谢, 贾斯汀 到目前为止,这是我的代码。我需要从行中删除返回值(“ \ n”)。我的某些单元格包含多行信息(一个列表),因此我可以在csv中使用“ \ n”来表示 单元格中

  • 因此,我有一个hashmap ,它存储每个字符串的arraylist。但是当我用ArrayList的新值添加另一对时,其他键值将被替换。因此,不同键的所有值都是相同的。 添加的第一个键: 对于第二个键,列表中有不同。但是,当添加第二个键(在put()方法之后)时,第一个键的值已经被替换。

  • 我将键值对的哈希映射声明为, 我正在使用一种方法序列化此hashmap,并使用以下代码将其转换为字符串: 当我调用序列化元数据方法并将我的hashmap作为输入传递时,我希望映射状态由ObjectOutputStream流式传输,并在ByteArrayOutputStream(baos)中存储字节数组 {key1=value1,key2=value2,key3=value3} 当我们将hashma

  • 我需要使用jolt spec在JSON中将(多个)键转换为值,将值转换为键。做这件事的正确规范应该是什么? 输入: 所需输出:

  • 问题内容: 在Java中将a转换boolean为an 的最常用方法是什么int? 问题答案: ^^ PS : true = 1 and false = 0

  • 我通过一个接一个地放置值来创建HashMap。当我在每次迭代后打印hashmap时,生成的hashmap包含所有键的相同值。我不明白为什么会这样。我已经粘贴了下面的输出 HashMap(String,List(Object))mRestrictions; 输出:- 逐个限制:-{profile\u name=[Test1]} 逐个限制:-{profile\u name=[url],url=[url