【问题标题】:How can make for loops on this array code?如何在此数组代码上进行 for 循环?
【发布时间】:2020-07-18 13:46:15
【问题描述】:

我的项目包含此代码以获取此数组中的图片链接。我想用 for 循环创建图像数组。

 private void sliderPic(){
  List<String> sP=catalog_data_list.getCatalogImages();
  String[] urls;
      // Şimdilik bu yöntemle gelen resim sayısına göre dolduruyorum slider'ı.
   int spSize = sP.size();
  if (spSize==2)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1))};
  else if (spSize==1)
      urls = new String[]{String.valueOf(sP.get(0))};
  else if (spSize==3)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2))};
  else if (spSize==4)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3))};
  else if (spSize==5)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4))};
  else if (spSize==6)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5))};
  else if (spSize==7)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6))};
  else if (spSize==8)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
              String.valueOf(sP.get(7))};
  else if (spSize==9)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
              String.valueOf(sP.get(7)), String.valueOf(sP.get(8))};
  else if (spSize==10)
      urls = new String[]{String.valueOf(sP.get(0)), String.valueOf(sP.get(1)), String.valueOf(sP.get(2)),
              String.valueOf(sP.get(3)), String.valueOf(sP.get(4)), String.valueOf(sP.get(5)), String.valueOf(sP.get(6)),
              String.valueOf(sP.get(7)), String.valueOf(sP.get(8)), String.valueOf(sP.get(9))};

我刚刚尝试了这段代码来制作 for 循环,但它不允许在语法中: if (spSize==2)

      urls = new String[]{for (int i=0;i>3;i++){String.valueOf(sP.get(0)), String.valueOf(sP.get(1))};}

【问题讨论】:

  • urls = new String[spSize]; for (int i = 0; i &lt; spSize; i++) {urls[i] = String.valueOf(sP.get(i));}
  • @JohannesKuhn 谢谢。

标签: java android arrays for-loop


【解决方案1】:
  • 创建大小为spSize 的数组
  • 循环sP并填充数组

类似:

urls = new String[spSize];
for (int i=0; i<spSize; i++) {
    urls[i] = sP.get(i) // already a String, no need to call String.valueOf except if sP can contains null values.
}

您的想法很好,但您不能将循环用作构造函数参数。

【讨论】:

  • 真的是一个字符串吗?或者是nullString.valueOf(null)"null",而不是 null
猜你喜欢
  • 2012-12-03
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
  • 1970-01-01
  • 2023-01-22
  • 1970-01-01
  • 2020-09-18
  • 1970-01-01
相关资源
最近更新 更多