Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 第8天:字典和地图_Java_Exception_Inputmismatchexception - Fatal编程技术网

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问题。