当前位置: 首页 > article >正文

用JAVA写算法之输入输出篇

        本系列适合原来用C语言或其他语言写算法,但是因为找工作或比赛的原因改用JAVA语言写算法的同学。当然也同样适合初学算法,想用JAVA来写算法题的同学。

常规方法:使用Scanner类和System.out

        这种方法适用于leetcode,以及一些面试手撕(ACM模式)的场景,对于读写性能要求不高,但是简单够用。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt(); // 读取一个整数
        double d = scanner.nextDouble(); // 读取一个浮点数
        String str = scanner.next(); // 读取一个单词
        String line = scanner.nextLine(); // 读取一整行
        
        //换行输出
        System.out.println("Hello");
        //不换行输出
        System.out.print("World");
        //格式化输出
        System.out.printf("%6d,%6d,%6.2f", n, n, d);
    }
}

        一些特殊情况,需要循环输入多组数据,直到输入结束( EOF)

Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) 
{
    int n = scanner.nextInt(); // 读取下一个整数
}

        

进阶方法:使用BufferedReader和PrintWriter进行快读快写

        适用于算法竞赛以及秋招笔试的场景(本人见过一些秋招笔试题竟然会卡快读快写,所以还是需要掌握为好),对读写性能要求比较高

import java.io.*;

BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));

//快读
int n = Integer.parseInt(in.readLine());
String s = in.readLine();

// 快写
out.println(result.toString());
out.flush();


http://www.kler.cn/a/517212.html

相关文章:

  • Docker Hub 全面解析及应对策略
  • mysql相关知识(详细)
  • 【JAVA 基础 第(20)课】JDBC JAVA 连接 MySql 数据库
  • 小游戏源码开发搭建技术栈和服务器配置流程
  • 假期day1
  • OpenCV相机标定与3D重建(65)对图像点进行去畸变处理函数undistortPoints()的使用
  • Spring Boot 集成 Redis 全解析
  • 【Pytest】结构介绍
  • BGP(3)路径属性
  • 如何解压7z文件?8种方法(Win/Mac/手机/网页端)
  • OpenCV相机标定与3D重建(62)根据两个投影矩阵和对应的图像点来计算3D空间中点的坐标函数triangulatePoints()的使用
  • 阿里巴巴开发规范手册MySQL工程结构
  • leetcode 2239. 找到最接近 0 的数字
  • spring---@Pointcut表达式
  • 我的世界(Minecraft)计算器python源码
  • 左叶子之和(力扣404)
  • 【小米AI实践】NLP 技术在小米语音助手中的应用
  • TVM框架学习笔记
  • Netty来创建一个TCP服务器,分包上传语音文件的处理
  • 数据结构(Java)——二叉树
  • 机器人领域中的AI
  • 计算机毕业设计Python电商品推荐系统 商品比价系统 电商比价系统 商品可视化 商品爬虫 机器学习 深度学习 京东爬虫 国美爬虫 淘宝爬虫 大数据
  • SpringBoot集成OpenFeign,实现服务间的相互调用
  • 正向代理(动态 IP 代理)和反向代理
  • 汽车钥匙发展史
  • Element修改表格结构样式集合(后续实时更新)