所以,我已经几个月没有做过任何编程了,因为我现在正在学习一般先决类(class),而且我有工作,所以现在我有点生疏了,我想达到标准当我在秋季参加下一堂编程课时。长话短说,我正在努力回到正轨,所以我正在制定一个愚蠢的练习计划。
我制作了这个程序,所有输入和输出都通过使用扫描仪的控制台完成,但后来决定继续使用 JOptionPane 作为界面。总的来说,这是一个非常简单的过渡,但我只是在最后的输出上遇到了问题。我试图将数组的所有元素变成一个漂亮的、语法正确的字符串,以便在 JOptionPane 中轻松输出,但我无法真正让我的串联正常工作。我意识到当猫的数量是一两只时,输出在语法上不准确。之后我会解决这个问题,这是一个简单的修复。
这是代码:
import javax.swing.JOptionPane;
public class JavaTestClass {
public static void main(String[] args)
{
//Get number of cats
int numOfCats = Integer.parseInt(JOptionPane.showInputDialog("How many cats do you have?"));
JOptionPane.showMessageDialog(null, "Oh, so you have " + numOfCats + " cats.\n", "Confirmation", JOptionPane.INFORMATION_MESSAGE);
//Get cat's names
String[] catNames = new String[numOfCats];
for(int i=0;i<numOfCats;i++)
{
catNames[i] = JOptionPane.showInputDialog("Enter the name of cat " + (i+1) + ": ");
}
//Output cat's names
String catNameList = null;
for(int i=0;i<numOfCats;i++)
{
if((i+1) == (numOfCats-1))
{
catNameList.concat(catNames[i] + ", and ");
}
else if ((i+1) == numOfCats)
{
catNameList.concat(catNames[i] + ".");
}
else
{
catNameList.concat(catNames[i] + ", ");
}
}
JOptionPane.showMessageDialog(null, "So your cat's names are: " + catNameList, "Names of cats", JOptionPane.INFORMATION_MESSAGE);
}
}
抱歉间距问题。它并没有真正按照我想要的方式出现,但我没有整天为了帖子而缩进所有行。不管怎样,它应该是相对明显的,即使我没有在我想要做的事情上面进行详细的描述。任何帮助将非常感激。提前致谢。
最佳答案
字符串是 immutable 。每个修改字符串的操作都会返回一个新字符串。
所以应该是:
catNameList = catNameList.concat(catNames[i] + ", and ");
也不要将其初始化为null
。
String catNameList = "";
关于java - 与 JOptionPane 相关的字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22620310/