我有一个程序在循环中生成字符串,但是我的程序太慢了。现在大约要运行600毫秒Oblig1Test.oppgave7
。可以采取什么措施来加快速度?
Oblig1.toString
:
public static String toString(int[] a, char v, char h, String mellomrom)
{
String s ="";
s += v;
if(a.length != 0)
{
for(int i = 0; i < a.length-1; i++)
{
s += a[i] + mellomrom;
}
s += a[a.length-1];
}
s += h;
return s;
}
Oblig1Test:
public static int oppgave7()
{
int[] b = new int[20000];
long tid = System.currentTimeMillis();
Oblig1.toString(b,' ',' '," ");
tid = System.currentTimeMillis() - tid;
if (tid > 40)
{
System.out.println("Oppgave 7: Metoden "
+ "er for ineffektiv. Må forbedres!");
}
}
public static void main(String[] args) throws IOException
{
oppgave7();
}
当代码中的慢速操作是许多字符串的串联时,使用StringBuilder可能会带来很多好处。
通过将您的toString
方法更改为
public static String toString(int[] a, char v, char h, String mellomrom){
StringBuilder sb = new StringBuilder();
sb.append(v);
if(a.length != 0){
for(int i = 0; i < a.length-1; i++){
sb.append(a[i]).append(mellomrom);
}
sb.append(a[a.length-1]);
}
sb.append(h);
return sb.toString();
}
我在计算机上能够从493毫秒传递到22毫秒。
append key value 返回新字符串值的长度。
对于以下字符串,大小输出不正确。为什么会这样?我该如何解决? 我试着逐字符遍历str,这样我就可以把它读入向量
在映射上分配一些默认值 我知道我需要在地图中添加值 问题是我的循环不起作用。我需要从地图中添加value2,基于从那里的位置或从地图中添加value2
我正在解构一个Java对象,从getter中获取所有必需的String值,并将所有这些值连接到每个对象的一个String中。然后我想存储每个字符串是 我将字符串连接到每个对象的一个字符串中,这样我就可以将其打印到pdf文档(pdfbox)中以生成报告。。。我想将每一行的格式设置为与表中的相同。E、 g不管String1是3个字符还是103个字符长,它都将始终填充25个字符的空间——要么子字符串变小
我正在尝试创建一个自动打开我的在线类的脚本。我写了这样的代码: 现在,问题是第一个if语句被无休止地执行,我想让它只执行一次,而不是等到现在==lesson2再执行第二个if etc
问题内容: 有没有人知道我可以用来操纵查询字符串的java类? 本质上,我想要一个可以简单地给查询字符串提供一个类,然后删除,添加和修改查询字符串KVP的类。 提前致谢。 编辑 为了回应对此问题的评论,查询字符串将如下所示; 所以我想向这个类传递查询字符串,并说类似的东西; 然后也许 有可能 或类似的东西。 问题答案: 像这样 要简单地迭代地图: