【问题标题】:How to initialize 1000 of strings programmatically in Java?如何在 Java 中以编程方式初始化 1000 个字符串?
【发布时间】:2013-08-25 15:47:41
【问题描述】:

我想在 ma 应用列表中初始化 1000 个字符串

public static final String[] IMAGES = {"1","2","3","4","5","6",......"1000"};

【问题讨论】:

  • 字符串会是各种不同的东西吗?或者正如你所说,数字 1 - 1000 作为字符串?
  • Matt Clark 你的代码不工作。我已经尝试过这样。"语法错误:,删除此令牌后"
  • 如果您可以在运行时为特定索引推断正确的文本值,为什么还要分配 1000 个字符串?我的意思是,String.valueOf(index-1) 的返回值将与 IMAGES[index] 相同,但前者意味着您不必在内存中保留 1000 个字符串。
  • @MH 你在说什么..如何在运行时做到这一点?
  • @DivyaRamakrishnan:我的意思是分配一个String[1000][1...n] 数字序列是没有意义的。与其为n=5(将是6)检索即IMAGES[n],不如直接使用String.valueOf(n+1)。后者也将是6,但您不必在内存中分配 1000 个字符串。

标签: java string for-loop


【解决方案1】:

如果字符串本身只是表示其在数组中位置的整数,则创建数组并运行for 循环。

String[] IMAGES = new String[1000];

for(int x = 0; x < IMAGES.length; x++){
    IMAGES[x] = Integer.toString(x);
}

【讨论】:

  • 抱歉,我遇到了一个问题,导致它超出了范围。在这里更正了。
【解决方案2】:

当然:

public static final String[] IMAGES;
static {
    IMAGES = new String[1000];
    for (int i = 1; i <= IMAGES.length; ++i) {
        IMAGES[i - 1] = String.valueOf(i);
    }
}

【讨论】:

  • 这会在索引 1 处开始添加字符串,并由于 &lt;= 而产生 ArrayIndexOutOfBounds 异常。
  • @Jrop - 哎呀。固定的。谢谢你的收获。
  • @DivyaRamakrishnan - 您可能想要指定什么语法错误。他的代码编译得很好。
  • @DivyaRamakrishnan - 什么语法错误?我的 Eclipse 版本对此很满意。
  • @Ted Hopp 你的代码就像一个魅力。@matt clark 答案不起作用
【解决方案3】:

也许是这样的:

public static final String[] IMAGES;
static {
    IMAGES = new String[1000];
    for (int i = 0; i < IMAGES.length; i++) {
        IMAGES[i] = String.valueOf(i+1);
    }
}

【讨论】:

  • Bastien Thanx ..但 Ted Hopp 先给出了答案。
  • @TedHopp 提出的解决方案在没有 (i+1) 的情况下更加优化(即使循环只执行一次)。去他的解决方案。
  • @Bastein 你能告诉我第二个答案不起作用吗。我在发布之前尝试过类似的方法......
  • @Divya 因为您需要将“for”放在方法中
  • @TedHopp 最后是完全一样的(除了索引):)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-20
  • 2016-04-29
  • 1970-01-01
  • 1970-01-01
  • 2018-08-23
  • 2014-02-08
相关资源
最近更新 更多