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算法题输入问题内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • SpringBoot + 微信公众号JSAPI支付功能的实现

    SpringBoot + 微信公众号JSAPI支付功能的实现

    这篇文章主要介绍了SpringBoot + 微信公众号JSAPI支付功能的实现,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • springmvc+mybatis 做分页sql 语句实例代码

    springmvc+mybatis 做分页sql 语句实例代码

    本文通过一段实例代码给大家介绍了springmvc+mybatis 做分页sql 语句的方法,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-07-07
  • mybatis中批量插入的两种方式(高效插入)

    mybatis中批量插入的两种方式(高效插入)

    MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。这篇文章主要介绍了mybatis中批量插入的两种方式(高效插入)的相关资料,非常不错,具有参考借鉴价值,感兴趣的朋友一起看看吧
    2016-09-09
  • 浅谈spring-boot 允许接口跨域并实现拦截(CORS)

    浅谈spring-boot 允许接口跨域并实现拦截(CORS)

    本篇文章主要介绍了浅谈spring-boot 允许接口跨域并实现拦截(CORS),具有一定的参考价值,有兴趣的可以了解一下
    2017-08-08
  • Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程

    Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置的教程

    这篇文章主要介绍了Springboot整合Spring Cloud Kubernetes读取ConfigMap支持自动刷新配置,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Map如何根据key指定条件进行过滤筛选

    Map如何根据key指定条件进行过滤筛选

    这篇文章主要介绍了Map如何根据key指定条件进行过滤筛选问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Spring中实现策略模式的几种方式小结

    Spring中实现策略模式的几种方式小结

    在写业务代码的时候,难免会遇到很多if-else,这个时候如果if-else不是很多可以用if-else,如果此时场景过多,太多的if-else会导致代码比较臃肿,这个时候策略模式就出现了,本文主要阐述工作中常用的实现策略模式的几种方式,需要的朋友可以参考下
    2024-05-05
  • Java中List集合的常用方法详解

    Java中List集合的常用方法详解

    这篇文章主要为大家详细介绍了Java中List集合的常用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Spring如何使用@Indexed加快启动速度

    Spring如何使用@Indexed加快启动速度

    这篇文章主要介绍了Spring如何使用@Indexed加快启动速度,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java获取汉字对应的拼音(全拼或首字母)

    Java获取汉字对应的拼音(全拼或首字母)

    这篇文章主要介绍了Java如何获取汉字对应的拼音(全拼或首字母),文中实现的方法是引用了pinyin4j-2.5.0.jar,然后给出了完整的示例代码,有需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-01-01

最新评论