Java在算法题中的输入问题实例详解

 更新时间:2022年02月20日 07:48:25   作者:foldn  
在校招笔试中,有的时候我们要自己设计输入输出,所以下面这篇文章主要给大家介绍了关于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 world
String str2 = Scanner.nextLine();//输入hello world
System.out.println(str1);//输出hello
System.out.println(str2);//输出hello world

5.输入多行数字,未知行数

没有对一行多数字做处理,处理方法和上述但行输入相同。

System.out.println("输入多行数字:");
        List<String> list = new ArrayList<>();

        String input = "";
        while (true) {
            input = sc.nextLine();
            if (!input.equals("q")) {
                list.add(input);
            }else {
                break;
            }
        }
        for (String s : list) {
            //只能转换一行一个数字,多个数字需要额外同上的操作
            //int intValue = Integer.valueOf(s);
            System.out.println(s);
        }

总结

到此这篇关于Java在算法题中的输入问题的文章就介绍到这了,更多相关Java算法题输入问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决MyEclipse中Maven设置jdk版本jdk1.8报错问题

    解决MyEclipse中Maven设置jdk版本jdk1.8报错问题

    今天安装了jdk1.8、tomcat8、和maven3.5.2,弄好后在myeclipse新建了一个maven项目,项目默认是jdk1.5,改成jdk1.8后项目报错
    2018-10-10
  • 解决SpringBoot加载application.properties配置文件的坑

    解决SpringBoot加载application.properties配置文件的坑

    这篇文章主要介绍了SpringBoot加载application.properties配置文件的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java文件字符输入流FileReader读取txt文件乱码的解决

    Java文件字符输入流FileReader读取txt文件乱码的解决

    这篇文章主要介绍了Java文件字符输入流FileReader读取txt文件乱码的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java网络编程之TCP程序设计

    Java网络编程之TCP程序设计

    这篇文章主要为大家详细介绍了Java网络编程之TCP程序设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • 关于Mybatis的@param注解及多个传参

    关于Mybatis的@param注解及多个传参

    这篇文章主要介绍了关于Mybatis的@param注解及多个传参,@Param的作用就是给参数命名,比如在mapper里面某方法A(int id),当添加注解后A(@Param(“userId”) int id),也就是说外部想要取出传入的id值,只需要取它的参数名userId就可以了,需要的朋友可以参考下
    2023-05-05
  • Java实现数据库连接的最详细教程分享

    Java实现数据库连接的最详细教程分享

    JDBC,Java Database Connectivity,即Java数据库连接,是 Java 中的一套和数据库进行交互的API,本文就来讲讲Java如何利用JDBC实现数据库的连接吧
    2023-05-05
  • Java工具包之Lombok使用

    Java工具包之Lombok使用

    这篇文章主要介绍了Java工具包之Lombok使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-09-09
  • mybatis多对多关联实战教程(推荐)

    mybatis多对多关联实战教程(推荐)

    下面小编就为大家带来一篇mybatis多对多关联实战教程(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 浅谈String.split()遇到空字符串的几种情况

    浅谈String.split()遇到空字符串的几种情况

    这篇文章主要介绍了浅谈String.split()遇到空字符串的几种情况,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • java8 集合之Stack详解及实例

    java8 集合之Stack详解及实例

    这篇文章主要介绍了java8 集合之Stack详解及实例的相关资料,需要的朋友可以参考下
    2017-02-02

最新评论