【问题标题】:Use Java for loop and create variable from output [duplicate]使用Java for循环并从输出创建变量[重复]
【发布时间】:2014-07-23 18:16:08
【问题描述】:

我正在尝试从 for 循环的结果中创建一个变量。首先这可能吗?如果有可能我该怎么做?到目前为止,这是我的代码:

Random r = new Random();
Random n = new Random();

int p = (int)(n.nextInt(14));

for (int i = 0; i < p; i++) {
  char c = (char) (r.nextInt(26) + 'a');
  System.out.println(c);}

  String word = ("output of forloop goes here");

我想使用 for 循环将所有随机生成的字母放入一个单词中。我该怎么做?

【问题讨论】:

标签: java random


【解决方案1】:

使用 StringBuilder :

StringBuilder sb = new StringBuilder();
for (int i = 0; i < p; i++) {
  char c = (char) (r.nextInt(26) + 'a');
  sb.append(c);
}

然后你可以调用sb.toString()来获取结果字符串。

【讨论】:

  • 这会起作用,但您不一定需要使用 StringBuilder。你可以在循环前声明一个字符串:String output = "",然后你可以写sb.append(c)而不是写output += c
  • @McAdam331 不。请不要那样做 :) 邪恶的。
  • 为什么这么邪恶?我一直使用这种方法。
  • @McAdam331 这将导致在每次迭代中构造一个新的 String 对象,因为 String 是不可变的。尽管编译器可能会将其优化为 StringBuilder。
  • 哦,我从来没有意识到发生了什么。实际上,@Eran,在你提到我做了一些搜索之后,根据this post,编译器无法优化到循环内的 Stringbuilder,但通常会以其他方式优化。感谢您的洞察力!
猜你喜欢
  • 1970-01-01
  • 2015-11-27
  • 2015-12-26
  • 1970-01-01
  • 1970-01-01
  • 2018-02-18
  • 2012-01-21
  • 2020-04-05
相关资源
最近更新 更多