java - 与 JOptionPane 相关的字符串连接

标签 java eclipse string concatenation joptionpane

所以,我已经几个月没有做过任何编程了,因为我现在正在学习一般先决类(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/

相关文章:

java - 前端 (HTML) 未从 Microsoft Azure 中的 mysql 数据库获取 Spring Boot 应用程序中的数据

java - 我在使用自签名证书时收到 SSLHandshakeException 和 CertPathValidatorException 错误

java - web-app 的 context-param 和 servlet 的 init-param 之间的区别?

java - 添加上下文路径后,Servlet 给出 404

android - 设置 minSdkVersion 和可用的模拟器?

python - 重叠出现的字符串计数

java - Java/Grails 环境中用户通知的最佳解决方案架构?

java - 删除 Gradle 默认源集

java - 为什么字符串在许多编程语言中都是不可变的?

c - 从字符串的可选点删除一个字符