java - 使用 Scanner 时出现 NoSuchElementException

标签 java nosuchelementexception

此代码是 prifix 的计算器。 第一个输入表示要计算的行数, 然后输入表达式。

例如) 2\n 12+3*\n 31/2-4*2+\n

它在 Eclipse 中运行良好,但在评分站点中不起作用。 评分网站表示

Exception: java.util.NoSuchElementException Maybe at: at Calculation.main(Calculation.java:16)

line 16 is 'String string=scan2.nextLine();'

但我找不到哪里错了。

    import java.util.*;
    public class Calculation{

        public static void main(String[] args){

            System.out.print("Enter a number: ");
            Scanner scan1=new Scanner(System.in);
            int n=scan1.nextInt();

            ArrayList<String> input=new ArrayList<String>();

            for(int i=0;i<n;i++){

                System.out.print("Enter a expression in postfix: ");
                Scanner scan2=new Scanner(System.in);
                String string=scan2.nextLine();
                input.add(i,string);

            }

            Stack<Integer> stack=new Stack<Integer>();

            for(int i=0;i<=input.size()-1;i++){
                for(int j=0;j<=input.get(i).length()-1;j++){
                    if(input.get(i).charAt(j)>=48&&input.get(i).charAt(j)<=57)
                        stack.push(Integer.parseInt(input.get(i).valueOf(input.get(i).charAt(j))));
                    else{
                        int n2=stack.pop();
                        int n1=stack.pop();

                        if(input.get(i).charAt(j)=='+')
                            stack.push(n1+n2);
                        if(input.get(i).charAt(j)=='-')
                            stack.push(n1-n2);
                        if(input.get(i).charAt(j)=='/')
                            stack.push(n1/n2);
                        if(input.get(i).charAt(j)=='*')
                            stack.push(n1*n2);          
                    }   

                }

                int output=stack.pop();
                System.out.println(output);
            }

        }

    }

最佳答案

问题是当你使用

String str=scan1.nextLine();

它只会读取您的输入,直到空格之后,它不会读取字符串输入,只需使用

String str=scan1.next();

关于java - 使用 Scanner 时出现 NoSuchElementException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32547726/

相关文章:

java - java读取文件时出错

java - 分析大文件中的数据时如何使用最小内存

java - 如何判断用户喜欢简体字还是繁体字

java - 声明类对象的正确方法是什么?

Java NoSuchElementException

java - 扫描仪正在创建 NoSuchElementException 错误,我不明白为什么

java - Android 与 websocket 通信(Node Websocket 服务器和 Android Java 客户端)。不适用于 Android 4

java - Jackson 自定义序列化器 : change object to be a simple property and value in containing object

java - 为什么我收到 NoSuchElementException?

java - Selenium 入门指南,我做错了什么?