Java 创建对话框窗口
我正在尝试创建一个对话框窗口,在该窗口中,我要求输入一个人的姓名,格式为:Lastname,姓氏 然后,我尝试在一个新的对话框窗口中显示姓氏名称,格式为:Java 创建对话框窗口,java,Java,我正在尝试创建一个对话框窗口,在该窗口中,我要求输入一个人的姓名,格式为:Lastname,姓氏 然后,我尝试在一个新的对话框窗口中显示姓氏名称,格式为:Hello!姓 这是我目前的代码: import javax.swing.*; public class Surname { public static void main(String[] arg) { String a = JOptionPane.showInputDialog(null, "Write your
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代码>否则逗号和空格会包含在最后一个字符串中。你是对的,我以为逗号在原始消息中,这就是我没有注意到它的原因。