【问题标题】:Using .split(","); to split .csv data into an array whilst in a for loop?使用 .split(",");在 for 循环中将 .csv 数据拆分为数组?
【发布时间】:2017-10-03 09:26:33
【问题描述】:

这是我目前遇到的问题。这是我的代码:

String[] sArray = new String[maxEntries*2];

for (int i = 0; i != (maxEntries*2); i++)
{
    sArray[i] = lines[i].split(",");
} 

而lines[]是一个已经从.csv文件中读取数据的数组 例如,如果我将 'i' 替换为 0,则前面的代码将起作用,但我需要拆分整个 lines[] 数组的数据。 但是,我反复收到以下错误消息:

error: incompatible types: String[] cannot be converted to String
            sArray[i] = lines[i].split(",");
                                      ^

任何帮助将不胜感激!

【问题讨论】:

  • 错误很清楚..阅读并修复它
  • 但都是数组?我正在从一个数组中拆分数据并将其放入另一个数组中
  • sArray[i]i-thsArray 元素。你声明了什么样的数组?您声明了一个字符串数组。 String.split(...) 方法返回什么?
  • sArray[i] 是字符串 sArray 是数组。

标签: java arrays csv split


【解决方案1】:

sArray 是一个字符串数组,因此sArray[i] 是一个字符串。 split(String str) 方法返回一个数组。

您正在尝试将数组值赋予字符串变量。 sArray 必须是 String 数组的数组

【讨论】:

    【解决方案2】:

    split 返回一个String 的数组。如果你想要第一个元素,你可以使用sArray[i] = lines[i].split(",")[0];。如果您想对列进行迭代,请将 0 替换为 i

    你想要做的可能是:

    String[][] myata = new String[maxEntries*2];
    
    for (int i = 0; i != (maxEntries*2); i++)
    {
        myData[i] = lines[i].split(",");
    } 
    

    这样你会得到一个字符串数组中每一行的数据,这些数组在一个更大的数组中。

    【讨论】:

      【解决方案3】:

      你必须改变

       sArray[i] = lines[i].split(",");
      

      sArray = lines[i].split(",");
      

      【讨论】:

      • 这是一个很好的观察,但是他不会循环他的数据,他每次循环都会删除它。
      【解决方案4】:

      使用 .split(",");在 for 中将 .csv 数据拆分为一个数组 循环?

      这是一个编译时错误,即 String[] 无法转换为 String 因为您正在尝试将 String 数组分配给 String 变量。

      for (int i = 0; i != (maxEntries * 2); i++) {
                  String s = lines[i];
                  sArray = s.split(",");
              }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-07-18
        • 1970-01-01
        • 2021-04-15
        • 2010-12-25
        • 1970-01-01
        • 2016-04-15
        • 2021-03-22
        相关资源
        最近更新 更多