【问题标题】:Making a string in a loop在循环中制作字符串
【发布时间】:2015-07-20 13:08:11
【问题描述】:

我想用我拥有的字段数创建一个字符串,在本例中为 15,但我想要可变数量的字段。

new String[] { "field1", "field2", "field3"}

我认为 for 是个好主意,但我怎样才能总结过去的“字段”?

String fields[];
    for (int i=0; i < headers.size(); i++){
         String temp[]={"field"+"[i]"}; 
         fields=fields+temp;
    }

我想要的是

 String new[]{ "field1", "field2", "field3"}

【问题讨论】:

  • 您要创建一个字符串数组String[] 还是单个String
  • 对过去的“字段”求和是什么意思?发布输入和预期结果的示例。 BTW 数组和列表从 0 开始索引,而不是 1。
  • @Pshemo 我希望字符串包含循环中的所有字段
  • 结果应该如何?如果输入将包含 foo bar 之类的字段,那么结果应该是 foobarfoo,barfield1=foo, field2=bar 或者甚至是其他内容?
  • foo, bar 就像字符串例子中的一样

标签: java string loops


【解决方案1】:
int x = 100;//The number you want
String[] tmp = new String[x];
for(int p = 0; p < x; p++) {
    tmp[p] = "field" + (p + 1); //P+1 to offset for the 0 start.
}

这将给出我认为您正在寻找的结果。而不是你想要做的,只需创建一个正确大小的空数组,然后用结果填充它。

如果您只是想打印字段摘要,请使用与此类似的内容...

String output = "";
for(int p = 0; p < tmp.length; p++) {
    output += " " + tmp[p]; //added a space for readability
}
System.out.println(output);

【讨论】:

  • output += " " + tmp[p]; 永远不要在循环中这样做。使用StringBuilder 及其append 方法。现在,在每次迭代中,您都在创建需要复制旧字符串并将新部分附加到它的新字符串。请注意,复制长字符串只是为了添加一些小部分可能非常昂贵。
  • 我不建议在循环中使用字符串连接。最好的方法是使用 StringBuilder 来避免不必要的字符串使内存混乱。
  • @JFPicard 是这样的吗? for (int i=0; i &lt; headers.size(); i++){ String fields[] = new StringBuilder("fields" + i).toString(); }
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-19
  • 2020-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多