String disp;
for(int i=0; i<31 ; i++)
disp = disp + Integer.toString(i);
JOptionPane.showMessageDialog(null, disp);
给出的错误:
Calendar.java:28:错误:变量disp可能尚未初始化
JOptionPane.showMessageDialog(null,disp);
最佳答案
您应该避免在循环中串联结果String,因为每次迭代都必须创建带有新部分的旧String的副本。而是使用StringBuilder
及其append
方法。
StringBuilder disp = new StringBuilder();
for (int i = 0; i < 31; i++)
disp.append(i);
JOptionPane.showMessageDialog(null, disp);
无论如何,导致您的问题的原因是
disp
没有分配任何字符串,因此没有要串联的内容。同样,在连接到字符串时,您无需将其元素显式解析为String,负责该操作的代码将由编译器添加。尝试String disp = "";//assign value to `disp`
for (int i = 0; i < 31; i++)
disp = disp + i;
关于java - Java:如何在循环中连接字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30968423/