Java 创建对话框窗口

Java 创建对话框窗口,java,Java,我正在尝试创建一个对话框窗口,在该窗口中,我要求输入一个人的姓名,格式为:Lastname,姓氏 然后,我尝试在一个新的对话框窗口中显示姓氏名称,格式为:Hello!姓 这是我目前的代码: import javax.swing.*; public class Surname { public static void main(String[] arg) { String a = JOptionPane.showInputDialog(null, "Write your

我正在尝试创建一个对话框窗口,在该窗口中,我要求输入一个人的姓名,格式为:Lastname,姓氏

然后,我尝试在一个新的对话框窗口中显示姓氏名称,格式为:
Hello!姓

这是我目前的代码:

import javax.swing.*; 

  public class Surname {
    public static void main(String[] arg) {

    String a = JOptionPane.showInputDialog(null, "Write your name: Lastname, surname ");

    int i, j;
    i = a.lastIndexOf(???);   
    j = a.indexOf(',' + 1);         

    a = a.substring(i, j);

    JOptionPane.showMessageDialog(null, "Hello! " + a.toUpperCase());  }}

您可以通过将字符串拆分为“,”来提取姓氏

比如说

String surname = "Novovic, Felix".split(", ")[0];
由于我们在这里访问的是一个数组,其大小完全由用户的输入决定,即用户输入“Novovic,Felix,Hello,World”,因此在访问数组之前,您应该确保输入的格式正确


例如,通过检查数组长度是否为2,可以通过将字符串拆分为“,”来提取姓氏

比如说

String surname = "Novovic, Felix".split(", ")[0];
由于我们在这里访问的是一个数组,其大小完全由用户的输入决定,即用户输入“Novovic,Felix,Hello,World”,因此在访问数组之前,您应该确保输入的格式正确

例如,通过使用此选项检查数组长度是否为2,可以执行以下操作:

public static void main(String[] args) {
    String a = JOptionPane.showInputDialog(null, "Write your name: Lastname, surname ");
    String[] nameParts = a.split(",");
    JOptionPane.showMessageDialog(null, "Hello! " + nameParts[1].trim().toUpperCase());  
}
。。。但您可能希望添加更多的错误处理。因此,这只是一个简单的示例

使用它可以:

public static void main(String[] args) {
    String a = JOptionPane.showInputDialog(null, "Write your name: Lastname, surname ");
    String[] nameParts = a.split(",");
    JOptionPane.showMessageDialog(null, "Hello! " + nameParts[1].trim().toUpperCase());  
}

。。。但您可能希望添加更多的错误处理。因此,这只是一个简单的示例

您的子字符串不正确,开始时需要逗号的索引,结束时只需要字符串的长度:

int i, j;
i = a.indexOf(',') + 2;
j = a.length();

a = a.substring(i, j);

子字符串不正确,开始时需要逗号索引,结束时只需要字符串长度:

int i, j;
i = a.indexOf(',') + 2;
j = a.length();

a = a.substring(i, j);

您的“子字符串”索引显然是错误的
j
可能应该是字符串的结尾(即
.length
)。也许你应该看看你的“子字符串”索引显然是错误的
j
可能应该是字符串的结尾(即
.length
)。也许你应该看看这张照片,它的姓氏是他想要的。@codingwombat确实。。。在不争论这两者之间的实际区别的情况下(在我居住的地方没有),我将修改答案。据我所知,除了语义学之外没有区别。我只知道询问者向我们提供了哪些详细信息,他需要逗号后的信息(他标记为姓氏)。这就产生了姓氏,他需要姓氏。@codingwombat确实。。。在不争论这两者之间的实际区别的情况下(在我居住的地方没有),我将修改答案。据我所知,除了语义学之外没有区别。我只知道询问者向我们提供了哪些详细信息,他想在逗号(他称之为姓氏)后获得这些信息。这并不完全正确。你需要做
i=a.indexOf(',')+2否则逗号和空格会包含在最后一个字符串中。你是对的,我以为逗号在原始消息中,这就是为什么我没有注意到它。这不太正确。你需要做
i=a.indexOf(',')+2否则逗号和空格会包含在最后一个字符串中。你是对的,我以为逗号在原始消息中,这就是我没有注意到它的原因。