Java 第8天:字典和地图
我正在努力解决这个问题Java 第8天:字典和地图,java,exception,inputmismatchexception,Java,Exception,Inputmismatchexception,我正在努力解决这个问题 使用链表和ind,它在eclipse中成功地解决了所有输出都正确的问题,比如hackerrank输出,但是当我试图在网站上上传代码时,它会显示一个运行时错误,其中包含inputmascheption 线程“main”java.util.InputMismatchException中出现异常 位于java.util.Scanner.throwFor(Scanner.java:909) 在java.util.Scanner.next(Scanner.java:1530) 在
使用链表和ind,它在eclipse中成功地解决了所有输出都正确的问题,比如hackerrank输出,但是当我试图在网站上上传代码时,它会显示一个运行时错误,其中包含inputmascheption 线程“main”java.util.InputMismatchException中出现异常
位于java.util.Scanner.throwFor(Scanner.java:909)
在java.util.Scanner.next(Scanner.java:1530)
在java.util.Scanner.nextInt(Scanner.java:2160)
在java.util.Scanner.nextInt(Scanner.java:2119)
在Person.main(Person.java:56) 这是我在类中的代码
public class Person {
//Node Structure
class Node
{
public String name;
public int phone;
Node next;
};
public Node head;
//Linked List Functions
public void add(String name , int phone ) //Add To End
{
Node n = new Node();
n.name = name;
n.phone = phone;
n.next = head;
head = n;
}
public void search(String name2) //Search inside The List
{
Node n = head;
boolean flag = false;
while(n != null)
{
if(name2.equals(n.name))
{
flag = true;
System.out.println(n.name + "=" + n.phone);
break;
}
n = n.next;
}
if(!flag)
System.out.println("Not found");
}
//Main Function
public static void main(String[] args) {
//Objects From Classes
Scanner s = new Scanner(System.in);
Person p = new Person();
int n = s.nextInt();
for(int i=0 ; i<n ; i++)
{
s.nextLine();
String name = s.nextLine();
int phone = s.nextInt();
p.add(name, phone);
}
s.nextLine();
while(s.hasNext())
{
String name2 = s.next();
p.search(name2);
//System.exit(1);
}
s.close();
}
公共类人物{
//节点结构
类节点
{
公共字符串名称;
公共int电话;
节点下一步;
};
公共节点头;
//链表函数
public void add(字符串名,int phone)//添加到末尾
{
节点n=新节点();
n、 名称=名称;
n、 电话=电话;
n、 下一个=头部;
水头=n;
}
public void search(字符串名称2)//在列表中搜索
{
节点n=头部;
布尔标志=假;
while(n!=null)
{
如果(名称2.等于(n.名称))
{
flag=true;
System.out.println(n.name+“=”+n.phone);
打破
}
n=n.next;
}
如果(!标志)
System.out.println(“未找到”);
}
//主要功能
公共静态void main(字符串[]args){
//类中的对象
扫描仪s=新的扫描仪(System.in);
人员p=新人员();
int n=s.nextInt();
对于(int i=0;i不确定hackerrank是否存在问题,但在我的系统上运行代码时遇到了相同的错误。存在inputmaschException
。请更改逻辑以使用以下代码接收用户输入:
// Main Function
public static void main(String[] args) {
//Objects From Classes
Scanner s = new Scanner(System.in);
Person p = new Person();
int n = s.nextInt();
// Using a different scanner to take 'n' lines of input
Scanner ss = new Scanner(System.in);
for (int i = 0; i < n; i++) {
// storing each line
String line = ss.nextLine();
// parsing 'line' based on the delimiter " "
String input[] = line.split(" ");
String name = input[0];
int phone = Integer.parseInt(input[1]);
p.add(name, phone);
}
List<String> listOfNames = new ArrayList<>();
while (n > 0) {
String name2 = s.next();
listOfNames.add(name2);
n--;
}
listOfNames.stream().forEach(e -> p.search(e));
s.close();
ss.close();
}
//主函数
公共静态void main(字符串[]args){
//类中的对象
扫描仪s=新的扫描仪(System.in);
人员p=新人员();
int n=s.nextInt();
//使用不同的扫描仪获取“n”行输入
扫描仪ss=新扫描仪(System.in);
对于(int i=0;i0){
字符串名称2=s.next();
名称列表。添加(名称2);
n--;
}
forEach(e->p.search(e));
s、 close();
ss.close();
}
出现此问题似乎是因为hackerrank.com希望使用Scaner.next()
方法解决:
for(int i = 0; i < n; i++){
String name = in.next();
int phone = in.nextInt();
// Write code here
}
for(int i=0 ; i<n ; i++)
{
s.nextLine();
String name = s.nextLine();
int phone = s.nextInt();
p.add(name, phone);
}
和测试数据他们用来检查您的解决方案不适合
尝试重构代码以使用Scaner.next()
而不是Scaner.nextLine()
方法来获取名称值。我在eclipse上运行了他的代码,我也遇到了同样的问题。似乎是逻辑问题,而不是hackerrank问题。