Java在算法题中的输入问题

博客 分享
0 299
张三
张三 2022-02-19 22:55:34
悬赏:0 积分 收藏

Java在算法题中的输入问题

Java在算法题中的输入问题

在写算法题的时候,经常因为数据的输入问题而导致卡壳,其中最常见的就是数据输入无法结束。

1.给定范围,确定输入几个数据

直接使用普通的Scanner输入数据范围,然后使用for循环输入后续数据。

例如:

Scanner scanner = new Scanner(System.in);//输入数据的范围int n = scanner.nextInt();for(int i = 0;i < n;i++){        arrays[i] = scanner.nextInt();}

2.没有给定范围,但是给出了结束符

使用while循环,当输入结束符的时候退出循环

Scanner scanner = new Scanner(System.in);//假设使用"0"作为结束符//无限循环,在循环中和结束符进行比较,相同则停止循环while(true){    String str = scanner,nextLine();    if(str == "0"){        break;    }    //没有结束,那么对str进行处理    }//判断输入的数据是否为"0",为"0"则停止循环,不为"0"则继续循环while(!scanner.hasNext("0")){    String str = scanner.nextLine();    //对str进行处理,只要输入不为"0",就可以一直循环下去}

3.没有给定范围,直接给定多组数据(这个最需要注意)

此时不能在使用Scanner进行输入,因为无法结束,我们需要使用(BufferedReader)字符缓冲输入流来进行输入。

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));while((str = br.readLine()) != null){            //当读入数据的下一行不为空时,进行循环,这里对str进行处理                                            }

4.Scanner中next()和nextLine()的区别

next()输入不会包含空格以后的数据,只会输入第一个空格前的字符,nextLine()输入可以包括空格,只有遇见分隔符(例如回车)才会结束

Scanner scanner = new Scanner(System.in);String str1 = scanner.next();//输入hello worldString str2 = Scanner.nextLine();//输入hello worldSystem.out.println(str1);//输出helloSystem.out.println(str2);//输出hello world
posted @ 2022-02-19 22:09 foldn 阅读(4) 评论(0) 编辑 收藏 举报
回帖
    张三

    张三 (王者 段位)

    821 积分 (2)粉丝 (41)源码

     

    温馨提示

    亦奇源码

    最新会员