java的输入输出模板(ACM模式)
文章目录
- 1、前置准备
- 2、普通输入输出API
- ①、输入API
- ②、输出API
- 3、快速输入输出API
- ①、BufferedReader
- ②、BufferedWriter
- 案例
- 题目描述
- 代码
面试有时候要acm模式,刷惯leetcode可能会手生不会acm模式,该文直接通过几个题来熟悉java的输入输出模板,多写几遍,熟悉即可。
1、前置准备
首先我们需要熟悉在没有idea的情况下如何手写并编译运行一个.java文件。
class Main{public static void main(String[] args) {System.out.println("hello java");}
}
每个.java文件必须有一个类我们一般命名为Main,文件名与代码中的类名必须一样。
命令行输入命令:
javac Main.java
生成Main.class的class文件,随后输入:
java Main
即可运行程序
2、普通输入输出API
import java.util.*;
import java.io.*;
不管如何,最开头这两个头文件都这样引入即可,这两个基本都会用到。
①、输入API
获取不同类型数据要使用nextXxx()的api。
示例代码:
public static void main(String[] args) {Scanner sc = new Scanner(System.in); //用于从控制台读入数据//获取int类型数据Integer a = sc.nextInt();//获取Double类型数据Double d = sc.nextDouble();//获取long类型数据long l = sc.nextLong();//获取short类型数据short b = sc.nextShort();System.out.print(a + " " + d + " " + l + " " + b + " ");}
运行结果:
获取字符串需要用到两个api:
①、in.next() 从缓冲区接收字符遇到空格后停止。 相当于 cin 和 scanf
②、in.nextLine() 从缓冲区接收字符,并且接收空格,遇到换行才停止,并且会自动舍弃换行。 相当于 gets()
public static void main(String[] args) {Scanner sc = new Scanner(System.in); //用于从控制台读入数据String x = sc.next();String s = sc.nextLine();System.out.println("x: " + x);System.out.println("s: " + s);}
运行结果:
可以看到next()遇到空格就会暂停,而nextLine()遇到换行就会暂停。
②、输出API
输出有三种形式;
System.out.print(); // 最后打印结果不会加换行
System.out.println(); // 最后打印结果加换行
System.out.printf(); // 类似c语言中的printf。
直接代码中来看:
①、
public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.print(i + " ");}}
运行结果:
0 1 2
②、
public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.println(i + " ");}}
运行结果:
0
1
2
③、
public static void main(String[] args) {for(int i = 0; i < 3; i ++ ) {System.out.printf("%d ", i);}}
运行结果:
0 1 2
3、快速输入输出API
①、BufferedReader
public static void main(String[] args) throws Exception{BufferedReader in = new BufferedReader(new InputStreamReader(System.in));String s = in.readLine();String[] arr = in.readLine().split(" ");System.out.println("s: " + s);System.out.print("arr: ");for (String str : arr) {System.out.print(str + " ");}}
运行结果:
补充:in.read()方法返回值为Integer,用于读取整数。
②、BufferedWriter
当数据量大的时候一定要使用这个类进行输出,谨记!
public static void main(String[] args) throws Exception{BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));int a = 68;char b = '2';String c = "3";bw.write(a);bw.write("\n");bw.write(b);bw.write("\n");bw.write(c);bw.write("\n");bw.flush();}
运行结果:
D
2
3
在输出整型要注意,会输出对应ASCII码值的字符,比如ASCII码值为68的字符是D。
解决方式:
bw.write(a + "");
bw.write(Integer.toString(a));
尽量将其转为字符串进行输出。
输出结果:
68
案例
通过一道算法题,来练习熟悉一下api。
题目描述
给定你一个长度为 n的整数数列。
请你使用快速排序对这个数列按照从小到大进行排序。
并将排好序的数列按顺序输出。
输入格式
输入共两行,第一行包含整数 n。
第二行包含 n个整数(所有整数均在 1∼109范围内),表示整个数列。
输出格式
输出共一行,包含 n个整数,表示排好序的数列。
数据范围
1≤n≤100000
输入样例:
5
3 1 2 4 5
输出样例:
1 2 3 4 5
代码
这里可以将new Inputstream()用new BufferedInputStream()来替代,读取速度更快。
import java.util.*;
import java.io.*;class Main{public static void main(String[] args) throws Exception {Scanner sc = new Scanner(new BufferedInputStream(System.in));Integer n = sc.nextInt();Integer[] nums = new Integer[n + 1];for(int i = 0; i < n; i ++ ) {Integer x = sc.nextInt();nums[i] = x;}quick_sort(nums, 0, n - 1);for(int i = 0; i < n; i ++ ) {System.out.print(nums[i] + " ");}}public static void quick_sort(Integer[] nums, int l, int r) {if(l >= r) return;int mid = nums[l + r >>> 1];int i = l - 1, j = r + 1;while(i < j) {do i ++; while(nums[i] < mid);do j --; while(nums[j] > mid);if(i < j) {Integer tem = nums[i];nums[i] = nums[j];nums[j] = tem;}}quick_sort(nums, l, j); quick_sort(nums, j + 1, r);}}
相关文章:
java的输入输出模板(ACM模式)
文章目录 1、前置准备2、普通输入输出API①、输入API②、输出API 3、快速输入输出API①、BufferedReader②、BufferedWriter 案例题目描述代码 面试有时候要acm模式,刷惯leetcode可能会手生不会acm模式,该文直接通过几个题来熟悉java的输入输出模板&…...
浏览器自动化与网络爬虫实战:工具对比与选型指南
浏览器自动化与网络爬虫实战:工具对比与选型指南 摘要 在当今数字化时代,浏览器自动化和网络爬虫技术已成为数据收集与测试的重要工具。本文深入剖析了多种主流浏览器自动化工具和爬虫框架的特点、优缺点及其适用场景,包括 Selenium、Puppe…...
“双非” “退伍” “材料” “学验证” 拿到Dream Offer
大家好,我是2024年路科验证V2X春季班的学员。在春季班的课上完后,觉得自己的基础大部分已经被路科给弥补了,但是很多课程中关于框架的搭建和一些细节还是不够扎实,有所欠缺,于是又重修了秋季班的课程。这两次课程给我的…...
python 上海新闻爬虫, 上观新闻 + 腾讯新闻
1. 起因, 目的: 继续爬上海新闻, 增加新闻来源。昨天写了: 东方网 澎湃新闻今天增加2个来源: 上观新闻 腾讯新闻此时有4个来源,我觉得已经差不多了。 2. 先看效果 3. 过程: 代码 1, 上观新闻 这里也有一个有趣的…...
【LUT技术专题】ECLUT代码解读
目录 原文概要 1. 训练 2. 转表 3. 测试 本文是对ECLUT技术的代码解读,原文解读请看ECLUT。 原文概要 ECLUT通过EC模块增大网络感受野,提升超分效果,实现SRLUT的改进,主要是2个创新点: 提出了一个扩展卷积&…...
Wsl2 网络模式介绍
每个模式说明参考下面连接 使用 WSL 访问网络应用程序 | Microsoft Learn...
项目高压生存指南:科学重构身体与认知系统的抗压算法
引言:压力重构的工程学思维 在项目管理的高压熔炉中,优秀从业者与普通执行者的核心差异不在于抗压能力的高低,而在于是否掌握压力管理的系统化算法。本文摒弃传统的鸡汤式减压建议,从人体工程学、神经科学和认知心理学角度&#…...
Java设计模式之工厂方法模式:从入门到精通
1. 工厂方法模式概述 1.1 定义与核心思想 工厂方法模式(Factory Method Pattern) **定义:**是一种创建型设计模式,它定义了一个用于创建对象的接口,但让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 **核心思想:**工厂模式的核心思想是将对象的创建…...
生成自定义的androidjar文件具体操作
在Androidsdk目录下的platform找到对应的api的android源码包路径,如android-32拷贝里面的android.jar文件到目录,如 C:\Users\xxxxxxx\Desktop\android\new_android_jar,然后解压android.jar到目录new_android_jar下。在编译后的aosp源码中找…...
在一台CentOS服务器上开启多个MySQL服务
1. 创建目录 mkdir -p /data/mysql3307/{data,tmp,logs} # 赋权 chown -R mysql:mysql /data/mysql3307 chmod -R 750 /data/mysql3307 2.修改 /etc/my.cnf ,添加[mysqld3307]实例配置组 [mysqld3307] # MySQL服务的端口 port 3307 # 套接字文件存放路径 socket /…...
相机的方向和位置
如何更好的控制相机按照我们需要来更好的观察我们需要的地貌呢? 使用 // setview瞬间到达指定位置,视角//生成position是天安门的位置var position Cesium.Cartesian3.fromDegrees(116.397428,39.90923,100)viewer.camera.setView({//指定相机位置destination: position, 在…...
云原生架构下的微服务通信机制演进与实践
📝个人主页🌹:慌ZHANG-CSDN博客 🌹🌹期待您的关注 🌹🌹 一、引言:通信机制是微服务架构的基础 随着软件系统复杂度的提升,“单体架构 → 微服务架构 → 云原生架构”逐步成为企业数字化转型的演进主线。而在微服务架构中,“服务间通信机制”决定了系统的稳定性…...
Git标签删除脚本解析与实践:轻松管理本地与远程标签
Git 标签删除脚本解析与实践:轻松管理本地与远程标签 在 Git 版本控制系统中,标签常用于标记重要的版本节点,方便追溯和管理项目的不同阶段。随着项目的推进,一些旧标签可能不再需要,此时就需要对它们进行清理。本文将通过一个完整的脚本,详细介绍如何删除本地和远程的 …...
5G让媒体传播更快更智能——技术赋能内容新时代
5G让媒体传播更快更智能——技术赋能内容新时代 在5G时代,媒体传播已经不再是传统的“电视纸媒网站”模式,而是演变成超低延迟、高速传输、智能交互的全新生态。无论是直播、短视频、VR/AR内容还是AI驱动的个性化推荐,5G的高速连接能力都在让…...
数字IC前端学习笔记:锁存器的综合
相关阅读 数字IC前端专栏https://blog.csdn.net/weixin_45791458/category_12173698.html?spm1001.2014.3001.5482 锁存器是一种时序逻辑,与寄存器相比面积更小,但它的存在会使静态时序分析(STA)变得更加复杂,因此懂得什么样的设计会综合出…...
Spring Boot快速开发:从零开始搭建一个企业级应用
Spring Boot快速开发:从零开始搭建一个企业级应用 在当今的软件开发领域,Spring Boot已经成为构建企业级应用的首选框架之一。它不仅简化了Spring应用的初始搭建以及开发过程,还提供了许多开箱即用的功能,使得开发者能够快速地构…...
ATH12K驱动框架架构图
ATH12K驱动框架架构图 ATH12K驱动框架架构图(分层描述)I. 顶层架构II. 核心数据结构层次关系III. 主要模块详解1. 核心模块 (Core)2. 硬件抽象层 (HAL)3. 无线管理接口 (WMI)4. 主机目标通信 (HTC)5. 复制引擎 (CE)6. MAC层7. 数据路径 (DP)IV. 关键数据流路径1. 发送数据流 …...
数字信号处理|| 离散序列的基本运算
一、实验目的 (1)进一步了解离散时间序列时域的基本运算。 (2)了解MATLAB语言进行离散序列运算的常用函数,掌握离散序列运算程序的编写方法。 二、实验涉及的MATLAB子函数 (1)find 功能:寻找非零元素的索…...
集成管理工具Gitlab
GitLab 是一个功能强大的开源代码托管和协作平台,集成 GitLab 可以显著提升团队的开发效率。下面我将为你介绍如何集成 GitLab,包括安装配置和基本使用流程。 一、GitLab 安装与配置 GitLab 有多种安装方式,推荐使用官方 Omnibus 包安装&am…...
2025 年数维杯数学建模 C 题完整论文代码模型:清明时节雨纷纷,何处踏青不误春
《2025 年数维杯数学建模 C 题完整论文代码模型》 C题完整论文 一、问题重述 1.1 问题背景 2025 年第十届数维杯大学生数学建模挑战赛 C 题,将我们带入“清明时节雨纷纷,何处踏青不误春”的诗意情境。清明节,这个处于每年 4 月 4 日至 6 …...
2025数维杯数学建模C题完整限量论文:清明时节雨纷纷,何处踏青不误春?
2025数维杯数学建模C题完整限量论文:清明时节雨纷纷,何处踏青不误春? 清明节,在每年 4 月 4 日至 6 日之间,既是自然节气,也是我国重要 的传统节日,承载着中华民族千年的文化记忆与情感寄托。此…...
POSE识别 神经网络
Pose 识别模型介绍 Pose 识别是计算机视觉领域的一个重要研究方向,其目标是从图像或视频中检测出人体的关键点位置,从而估计出人体的姿态。这项技术在许多领域都有广泛的应用,如动作捕捉、人机交互、体育分析、安防监控等。 Pose 识别模型的…...
Missashe高数强化学习笔记(随时更新)
Missashe高数强化学习笔记 说明:这篇笔记用于博主对高数强化课所学进行记录和总结。由于部分内容写在博主的日记博客里,所以博主会不定期将其重新copy到本篇笔记里。 第一章 函数极限连续 第二章 一元函数微分学 第三章 一元函数积分学 第一节 不定…...
如何从极狐GitLab 容器镜像库中删除容器镜像?
极狐GitLab 是 GitLab 在中国的发行版,关于中文参考文档和资料有: 极狐GitLab 中文文档极狐GitLab 中文论坛极狐GitLab 官网 从容器镜像库中删除容器镜像 (BASIC ALL) 您可以从您的容器镜像库中删除容器镜像。 要基于特定标准自动删除容器镜像&#x…...
出现在‘{‘的段错误
今天在运行程序时,程序因段错误退出了,于是使用gdb调试。 部分输出如下: [New Thread 0x7fffc88be6c0 (LWP 47902)] [New Thread 0x7fffc80bd6c0 (LWP 47903)] [New Thread 0x7…...
【C++设计模式之Observer观察者模式】
Observer观察者模式 模式定义动机(Motivation)结构(Structure)应用场景一(气象站)实现步骤1.定义观察者接口2.定义被观察者(主题)接口3.实现具体被观察者对象(气象站)4.实现具体观察者(例如:显示屏)5.main.cpp中使用示例6.输出结果7. 关键点 …...
【软件测试】测试用例的概念与常见测试的模型
目录 一、测试用例的概念 1.1 什么是测试用例 1.2 编写测试用例的目的 1.3 用例设计的编写格式 二、模型 2.1 质量模型 2.2 测试模型 2.2.1 瀑布模型 2.2.2 螺旋模型 2.2.3 V 模型 2.2.4 W模型 2.2.5 增量、迭代模型 2.2.6 敏捷模型 2.2.6.1 敏捷宣言 2.2.6.2 Sc…...
OpenCV的 ccalib 模块用于自定义标定板的检测和处理类cv::ccalib::CustomPattern()----函数calibrate
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ccalib::CustomPattern 是OpenCV的 ccalib 模块中的一个类,主要用于自定义标定板的检测和处理。这个模块提供了比传统的 calib3d…...
高效管理钉钉收款单数据集成到MySQL的技术方案
钉钉数据集成到MySQL的技术案例分享:dd-收款单-->mysql(鸿巢)收款单(其他收款) 在企业日常运营中,数据的高效管理和实时处理至关重要。本文将聚焦于一个具体的系统对接集成案例:如何将钉钉平…...
介质访问控制(MAC)
介质访问控制(MAC)详解 介质访问控制(Medium Access Control, MAC)是数据链路层的核心子层,负责解决多个设备共享同一通信介质时的冲突问题。它的核心目标是:在广播或多路访问网络中,确保数据有…...
在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南)
在Mac M1/M2上使用Hugging Face Transformers进行中文文本分类(完整指南) 前言 随着Apple Silicon芯片(M1/M2)的普及,越来越多的开发者希望在Mac上运行深度学习任务。本文将详细介绍如何在Mac M1/M2设备上使用Huggin…...
企业如何将钉钉付款单高效集成到金蝶云星空?
钉钉数据集成到金蝶云星空:修改下推的付款单③ 在企业信息化系统中,数据的高效流转和准确对接是实现业务流程自动化的关键。本文将分享一个实际案例,展示如何通过轻易云数据集成平台,将钉钉中的付款单数据无缝集成到金蝶云星空系…...
软件确认报告:审查功能、评估标准及推动软件稳定高效运行
软件确认报告的主要任务是严格审查软件的各项功能,以此为基础,为精确评估其是否满足标准提供依据,并推动软件实现稳定与高效的运行。具体来说,报告将从目的、背景、所依据的资料、采用的测试手段以及最终的测试成效等几个方面进行…...
Github 热点项目 Cursor开源代替,AI代理+可视化编程!支持本地部署的隐私友好型开发神器。
Void编辑器今天必须拥有姓名!作为总星数近1.5万的顶流开源工具,它用三大绝活圈粉无数:① 隐私党狂喜!所有AI对话直连模型商,你的代码数据绝不留在别人服务器;② 自带时光机功能,AI修改代码时自动…...
影像超分——从低清到高清的跨越密码
在数字时代,影像超分技术宛如魔法般存在,它能让老旧模糊的照片焕发新生但目前面临着高计算量、稳定性不足,压缩与量化误差影响大,退化模型的估计难度高等痛点与挑战,本文将围绕影像超分的工作技术原理、应用场景等展开…...
Vue项目---懒加载的应用
懒加载 介绍原理展示详细解析模版部分脚本部分数据和变量IntersectionObserver加载更多数据生命周期钩子 代码Mock数据前端代码 介绍 懒加载(Lazy Loading)是一种常见的前端优化技术,用于延迟加载页面上的资源(如图片、视频、组件…...
前端自学入门:HTML 基础详解与学习路线指引
在互联网的浪潮中,前端开发如同构建数字世界的基石,而 HTML 则是前端开发的 “入场券”。对于许多渴望踏入前端领域的初学者而言,HTML 入门是首要挑战。本指南将以清晰易懂的方式,带大家深入了解 HTML 基础,并梳理前端…...
机器学习 期末考试题
自测试卷1 一、选择题 1.下面关于数据分析说法正确的是( )。 A.数据分析是数学、统计学理论结合科学的统计分析方法 B.数据分析是一种数学分析方法 C.数据分析是统计学分析方法 D.数据分析是大数据分析方法 2.下面不是数据分析方法的是( )。 A.同比分析 B.环比分析…...
BP神经网络
一、BP 神经网络概述 BP(Back Propagation)神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,它是目前应用最广泛的神经网络模型之一。BP 神经网络由输入层、隐藏层和输出层组成,隐藏层可以有一层或多层。其学习过程由正…...
使用 NSSM 安装 Tomcat 11.0.6 为 Windows 服务
步骤 1:下载 NSSM 访问 NSSM 的官方网站:NSSM Download 下载适合您系统的版本(通常是 nssm-<version>-win64.zip 或 nssm-<version>-win32.zip)。 解压下载的文件。 步骤 2:将 NSSM 移动到 Tomcat 目录…...
拉西坦类促智药物的异同
吡拉西坦及其主要同类药物的深度研究报告 以下表格总结了本报告所讨论的主要拉西坦类药物的关键特性,以便进行直接比较。 表1:主要拉西坦类药物特性比较 特性 吡拉西坦 (Piracetam) 阿尼西坦 (Aniracetam) 奥拉西坦 (Oxiracetam) 普拉西坦 (Pramir…...
高级可视化图表分析实践——以《大侠立志传》武器系统为例
高级可视化图表分析实践——以《大侠立志传》武器系统为例 引言武器类型分布矩形树图结论 不同品质/类别武器的攻击力分布情况蜂群图分析结论 武器来源桑基图分析结论 武器附加属性词云图分析结论 不同品级武器装备熟练度要求/特质要求离散热力图结论品质与熟练度的正相关性品质…...
HT71663同步升压2.7V-13V输入10A聚能芯半导体禾润一级代理
在便携式设备飞速发展的今天,电源转换效率与产品尺寸始终是行业难以平衡的难题。但现在,HT71663 高功率全集成升压转换器强势登场,一举打破僵局,为便携式系统带来颠覆性的高效小尺寸解决方案! HT71663 的卓越性能&am…...
3D桌面可视化开发平台HOOPS Native Platform,如何实现3D系统快速开发与部署?
无论是制造、工程还是软件行业,高效的3D应用开发能力都直接影响着产品创新、客户体验和市场响应速度。HOOPS技术,凭借领先的技术实力和广泛的行业应用,正成为推动企业数字化转型、驱动业务增长的核心引擎。本文将深入解析HOOPS技术的优势&…...
DeepResearch深度搜索实现方法调研
DeepResearch深度搜索实现方法调研 Deep Research 有三个核心能力 能力一:自主规划解决问题的搜索路径(生成子问题,queries,检索)能力二:在探索路径时动态调整搜索方向(刘亦菲最好的一部电影是…...
使用Python删除PDF中多余或空白的页面
目录 为什么需要删除 PDF 中的多余或空白页面? 所需工具 环境准备 如何使用Python删除PDF中的多余页面 实现思路 详细实现步骤 实现代码 如何使用Python检测并删除PDF中的空白页 实现思路 详细实现步骤 实现代码 在处理 PDF 文件时,常常会遇到…...
什么是分布式光伏系统?屋顶分布式光伏如何并网?
政策窗口倒计时!分布式光伏如何破局而立? 2025年,中国分布式光伏行业迎来关键转折: ▸ "430"落幕——抢装潮收官,但考验才刚开始; ▸ "531"生死线——新增项目全面市场化交易启动&…...
MySQL——七、索引
优势:极高查询效率;极高排序效率 劣势:占用磁盘空间;降低更新表的速度(可忽略,磁盘相对便宜;增删改比例较小) 索引结构 MYSQL的索引是在存储引擎层实现的,不同的存储引…...
LVGL的核心:lv_timer_handler
文章目录 🧠 一句话总结 LVGL 的运行核心:🔁 1. while(1) 主循环中的 lv_task_handler()⏱️ 2. lv_timer_handler() 定时器调度核心✅ 并发控制✅ 关键行为流程:🌀 任务执行逻辑:🧮 计算下一次…...
LLM量化方法:ZeroQuant、LLM.int8()、SmoothQuant、GPTQ、AWQ
文章目录 TLDR;量化分类量化时机量化粒度ZeroQuant: Efficient and Affordable Post-Training Quantization for Large-Scale Transformers细粒度硬件感知量化低成本逐层知识蒸馏(Layer-by-layer Knowledge Distillation, LKD) LLM.int8(): 8-bit Matrix…...