Java如何使用JOptionPane弹窗输出数组中存储的最长姓名
代码问题排查
你现有代码无法正常弹出结果的原因有3个:
- 字符串比较逻辑错误:Java中判断字符串内容相等不能用
==(该符号仅比较对象内存地址),且你定义的name1是空字符串,对应的判断条件永远无法正常触发 - 缺少JOptionPane类的导入语句,代码无法直接编译
- 冗余逻辑过多:额外定义的空
name1变量、无意义的条件判断完全多余,遍历得到最长姓名后可以直接调用弹窗方法输出
修正后完整代码
import java.util.Scanner; import javax.swing.JOptionPane; public class LongestNameQuery { public static void main(String[] args) { Scanner wczytanie = new Scanner(System.in); System.out.println("ENTER THE AMOUNT OF NAMES"); int size = wczytanie.nextInt(); // 消费nextInt读取数字后残留的换行符,避免后续读入空行 wczytanie.nextLine(); String[] nameArray = new String[size]; // 初始化最长姓名变量为空串 String longestName = ""; System.out.println("ENTER THE NAMES"); for (int i = 0; i < nameArray.length; i++) { nameArray[i] = wczytanie.nextLine(); if (longestName.length() < nameArray[i].length()) { longestName = nameArray[i]; } } // 控制台输出结果 System.out.println("LONGEST NAME: " + longestName); // 弹窗输出最长姓名结果 JOptionPane.showMessageDialog(null, "THE LONGEST NAME IS " + longestName); wczytanie.close(); } }
运行说明
- 运行后先在控制台输入待录入的姓名总数量,按回车确认
- 按提示依次输入对应数量的姓名,每输入一个按一次回车
- 所有姓名输入完成后,控制台会打印最长姓名,同时自动弹出JOptionPane对话框展示结果
- 如果存在多个长度相同的最长姓名,程序默认返回第一个录入的最长姓名,需要返回全部最长姓名的话可以额外加列表存储逻辑
内容的提问来源于stack exchange,提问作者FlyingRacoon51
相关产品推荐
相关产品推荐

