我试图创建一个对话框窗口,我要求的人名称格式为:姓氏,姓氏
然后我尝试在新的对话框窗口中显示只是姓氏名称,格式为:Hello! SURNAME!
到目前为止,这是我的代码:
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()); }}
答案 0 :(得分:2)
您可以通过将字符串拆分为","。
来提取姓氏例如
String surname = "Novovic, Felix".split(", ")[0];
由于我们正在访问一个数组,这里的大小完全取决于用户的输入,即用户输入" Novovic,Felix,Hello,World"在访问阵列之前,您应该确保输入的格式正确。
例如,通过检查数组长度= 2
答案 1 :(得分:2)
您的子字符串不正确,首先您需要逗号的索引,最后只需要字符串的长度:
int i, j;
i = a.indexOf(',') + 2;
j = a.length();
a = a.substring(i, j);
答案 2 :(得分:1)
使用split()
,这样做:
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());
}
...但您可能想要添加更多错误处理。所以这只是一个裸骨的例子