如何向Vector中添加两个字符串元素?Java开发遇InputMismatchException报错
问题解决方案
1. InputMismatchException异常修复
该异常通常是使用Scanner类获取输入时,输入值的类型和你调用的接收方法不匹配导致的。比如你要输入字符串类型的姓名,却调用了nextInt()、nextDouble()这类接收数值的方法,就会触发该异常。
修复方案:接收姓名输入统一使用Scanner的nextLine()方法,示例代码如下:
import java.util.Scanner; public class InputTest { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入名:"); String firstName = scanner.nextLine(); System.out.print("请输入姓:"); String surName = scanner.nextLine(); // 构造Name对象 Name name = new Name(firstName, surName); scanner.close(); } }
如果之前有调用过nextInt()这类数值读取方法,需要额外调用一次scanner.nextLine()吃掉缓冲区遗留的换行符,避免后续的nextLine()直接读取到空值:
// 先读取数值类型的用户ID int userId = scanner.nextInt(); scanner.nextLine(); // 清理换行符 // 再读取姓名 String firstName = scanner.nextLine();
2. 向Vector中添加两个字符串元素实现
如果是直接存储两个姓名字符串,直接调用Vector的add()方法即可,示例如下:
import java.util.Vector; public class VectorTest { public static void main(String[] args) { // 初始化存储字符串类型的Vector Vector<String> nameVector = new Vector<>(); // 这里替换为你实际获取到的姓名输入值 String firstName = "李"; String surName = "四"; // 添加两个字符串元素 nameVector.add(firstName); nameVector.add(surName); // 验证结果 System.out.println("Vector中的元素:" + nameVector); // 如果你需要存储Name类对象到Vector,也可以按以下方式实现: Vector<Name> nameObjVector = new Vector<>(); nameObjVector.add(new Name(firstName, surName)); } }
你现有的Name.java代码本身没有语法问题,只要调整输入部分的Scanner调用逻辑即可解决报错。
内容的提问来源于stack exchange,提问作者Neha Sharma
相关产品推荐
相关产品推荐

