Java快读

news2024/10/1 9:50:16

java的快读

(1)BufferedReader

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));//定义对象
    String[] strings = br.readLine().split(" ");//读取一行字符串,以空格为分隔转化为字符串数组
    int n = Integer.parseInt(strings[0]);//读取整数,字符串转化为Integer类型数字
    long m = Long.parseLong(strings[1]); //读取整数,字符串转化为Long类型数字
    System.out.println(n + " "+m);
    strings = br.readLine().split(" ");
    System.out.println(strings[0]);//读取字符串

(2)StreamTokenizer

该类的使用较为麻烦,可以封装为一个对象,减低代码量。他比BufferedReader快,但是对于读取字符类型的操作,只能读取26字母,特殊符号和数字无法读取,有其局限性。

public class Main{
	static class Read{
		StreamTokenizer st = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
		public int nextInt() throws Exception{
			st.nextToken();
			return (int)st.nval;
		}
        public String readLine() throws Exception{	//有局限,慎用
		st.nextToken();
		return st.sval;
	}
	}
public static void main(String[] args) throws Exception {
    Read read = new Read();
    int n = read.nextInt();
    System.out.println(n);
}
}

StreamTokenizer常见错误

(1)StreamTokenizer读入long类型的数字时会出现错误,因为nval的类型是double,在转换为long类型的过程中,由于double的精度问题,当long类型读入太大的数字时会出错。double类型能表示的数字范围比long大,但是是以牺牲精度的方式获得更大的存储,而他能精确保存的数字位数为十进制的15或16位,要比long小。

public class 快读{
	static BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
	static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
	static StreamTokenizer sr = new StreamTokenizer(in);
	static long ans = 0;
	public static void main(String[] args) throws IOException {
		long n = nextLong();
		System.out.println(n);
	}
	static long nextLong() throws IOException {
		sr.nextToken();
		System.out.println(sr.nval);
		return (long) sr.nval;
	}
}

在这里插入图片描述

由图可以看见,double类型在存储时,牺牲了精度,导致结果不准确。

(2)StreamTokenizer读入太长的字符串时也会有问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1484900.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

H12-821_108

108.路由器R1和R2分别使用GigabitEthernet0/0/0直连,并试图建立OSFP邻居,然而邻居关系并没有成功建立,排错过程如图所示。那么以下哪一个操作可以使R1和R2邻居管理正常建立? A. [R2] ospf 1 [R2-ospf-1]area 0 [R2-ospf-1-area-0.…

主网NFT的发布合约

1.什么是nft? NFT:Non-fungible-token 非同质化货币 2.新建suimove项目 使用sui move new 项目名命令新建sui move项目 sui move new nft_qyx项目结构如下: 3.写nft合约 module qyx123::nft{use sui::object::{Self, UID};use sui::transfer;use sui::tx_context::{Sel…

【Git】merge时报错:refusing to merge unrelated histories

文章目录 一、问题二、解决办法1、将feature分支的东西追加到master分支中2、将feature里的东西直接覆盖到master分支中 一、问题 今天将feature分支合并到master时报错:refusing to merge unrelated histories(拒绝合并无关历史) 报错原因&…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通信号标志识别软件(Python+PySide6界面+训练代码)

摘要:开发高效的交通信号标志识别软件对于提升道路安全和自动驾驶技术发展具有重要意义。本篇博客详细阐述了如何利用深度学习构建一个交通信号标志识别软件,并提供了完整的实现代码。该软件基于先进的YOLOv8算法,并对比了YOLOv7、YOLOv6、YO…

电脑开机显示器没有信号而且键盘鼠标不亮怎么解决?

大家在使用电脑的过程,开机没有反应是比较经常遇到的问题,就有用户反映说自己的电脑启动之后,显示器无信号,键盘鼠标灯也不亮,怎么操作都没有效果。对开机有影响的硬件主要是内存条,内存条是非常容易松动的,而且金手指如果氧化了,都会导致开不了机 大家在使用电脑的过程…

多维时序 | Matlab实现GRNN广义回归神经网络多变量时间序列预测

文章目录 效果一览文章概述源码设计参考资料效果一览

SpringCloud(18)之Sleuth +Zipkin链路追踪

一、Zipkin介绍 Zipkin是一个开放源代码分布式的跟踪系统,它可以帮助收集服务的时间数据,以解决微服务架构中的延迟问 题,包括数据的收集、存储、查找和展现。每个服务向zipkin报告计时数据,zipkin会根据调用关系通 过Zipkin UI…

「滚雪球学Java」:集合(章节汇总)

咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…

基于Java SSM框架实现众筹平台网站系统项目【项目源码】计算机毕业设计

基于java的SSM框架实现众筹平台网站系统演示 SSM框架 当今流行的“SSM组合框架”是Spring SpringMVC MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring…

GO—函数

Go 语言支持普通函数、匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方便。 Go 语言的函数属于“一等公民”(first-class),也就是说: 函数本身可以作为值进行传递。支持匿名函数和闭…

Vivado的DocNav打不开,报错:Premature end of document, found at line number 1

需确认软件版本是否支持电脑系统版本,目前 2023.2 DocNav版本是支持win11 22H2;下载了2023.2版本,安装过程中重新安装DocNav。再打开DocNav,然后更新DocNav左上角的Catalog到最新就好了(此时要开全局代理)。…

CSS锥形渐变:conic-gradient()

画一个扇形图&#xff0c;使用常规方法可能很难画&#xff0c;但是用锥形渐变的话非常好画 <style>.pattern{width: 100px; height: 100px;border-radius: 50%;background: conic-gradient(yellow 30deg , black 30deg , black 90deg , yellow 90deg ,yellow 150d…

黑马鸿蒙学习笔记1:TEXT组件

业余时间学习下黑马鸿蒙课程&#xff0c;主要截取重要的PPT学习&#xff1a; 其实就是用$r&#xff08;&#xff09;的方法&#xff0c;去调用本地化资源文件&#xff0c;可以做多语言了。 比如每个语言目录下都有个string.json文件&#xff0c;然后用键值对name,value的方式搭…

代码随想录day11(1)字符串:反转字符串中的单词 (leetcode151)

题目要求&#xff1a;给定一个字符串&#xff0c;将其中单词顺序反转&#xff0c;且每个单词之间有且仅有一个空格。 思路&#xff1a;因为本题没有限制空间复杂度&#xff0c;所以首先想到的是用split直接分割单词&#xff0c;然后将单词倒叙相加。 但如果想让空间复杂度为O…

Mongodb基础(node.js版)

一、Mongodb 介绍 Mongodb 是一个文档数据库&#xff0c;以文档形式存储数据&#xff0c;格式类似于 JSON 与 Mysql 的特点及选型对照 MongodbMysql关系类型非关系型关系型存储类型文档存储&#xff08;类似于写 Word &#xff09;表格存储 &#xff08;类似于写 Excle&…

RFID(Radio Frequency Identification)技术笔记

一、RFID的介绍 RFID&#xff0c;全称为Radio Frequency Identification&#xff0c;即射频识别技术&#xff0c;也常被称为电子标签或无线射频识别。它是一种非接触式的自动识别技术&#xff0c;通过射频信号自动识别目标对象并获取相关数据&#xff0c;识别过程无需人工干预&…

VMwareWorkstation17.0搭建Windows98微软操作系统虚拟机(完整安装步骤·全网最详细图文教程)更新中

VMwareWorkstation17.0搭建Windows98微软操作系统虚拟机&#xff08;完整安装步骤全网最详细图文教程&#xff09; VMwareWorkstation17.0搭建Windows98微软操作系统虚拟机&#xff08;完整安装步骤全网最详细图文教程&#xff09;

Cloud整合Zookeeper代替Eureka

微服务间通信重构与服务治理笔记-CSDN博客 Zookeeper是一个分布式协调工具,可以实现注册中心功能 安装Zookeeper 随便 就用最新版本吧 进入Zookeeper 包目录 cd /usr/local/develop/ 解压 tar -zxvf apache-zookeeper-3.9.1-bin.tar.gz -C /usr/local/develop 进入配置文件…

Web开发介绍,制作小网站流程和需要的技术【详解】

1.什么是web开发 Web&#xff1a;全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 所以Web开发说白了&#xff0c;就是开发网站的&#xff0c;例如网站&#xff1a;淘宝&#xff0c;京东等等 2. 网站的工作流程 1.首先我们需…

服务器有几种http强制跳转https设置方法

目前为站点安装SSL证书开启https加密访问已经是件很简单的事了&#xff0c;主要是免费SSL证书的普及&#xff0c;为大家提供了很好的基础。 Apache环境下如何http强制跳转https访问。Nginx环境下一般是通过修改“你的域名.conf”文件来实现的。 而Apache环境下通过修改.htacces…