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

网站关键词排名优化推广软件广告公司企业画册设计

网站关键词排名优化推广软件,广告公司企业画册设计,苏州企业网站设计方案,深圳网站建设认准乐云一、输入输出方式:Scanner vs BufferedReader Scanner类 简介:Scanner 是 Java 中一个非常方便的用于读取用户输入的类,它可以从多种输入源(如标准输入、文件等)读取基本数据类型和字符串。 1. Scanner的细节与使用…

一、输入输出方式:Scanner vs BufferedReader

Scanner类
  • 简介Scanner 是 Java 中一个非常方便的用于读取用户输入的类,它可以从多种输入源(如标准输入、文件等)读取基本数据类型和字符串。

1. Scanner的细节与使用场景

适用场景:小规模输入、简单测试、需要快速开发的场景。

核心方法:

nextInt():读取整数(以空格/回车分隔)。

nextDouble():读取双精度浮点数。

nextLine():读取整行(可能因前序输入残留换行符导致问题)。

陷阱示例:

Scanner sc = new Scanner(System.in);

int a = sc.nextInt();      // 输入后按回车

String s = sc.nextLine();  // 这里会读取到残留的换行符,导致s为空!

解决方法:在nextInt()后添加sc.nextLine()清空缓冲区。

import java.util.Scanner;public class ScannerExample {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);// 读取整数int num = scanner.nextInt();// 读取字符串String str = scanner.nextLine();System.out.println("输入的整数是: " + num);System.out.println("输入的字符串是: " + str);scanner.close();}}

  • 优点:使用简单,提供了丰富的方法来读取不同类型的数据,如 nextInt()nextDouble()nextLine() 等。
  • 缺点:读取效率相对较低,尤其是在处理大量输入时。

BufferedReader类

  • 简介BufferedReader 是一个字符缓冲输入流,它可以高效地读取字符数据。通常与 InputStreamReader 结合使用,将字节流转换为字符流。
  • 使用示例
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class BufferedReaderExample {public static void main(String[] args) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));// 读取一行字符串String line = reader.readLine();// 将字符串转换为整数int num = Integer.parseInt(line);System.out.println("输入的整数是: " + num);reader.close();}}

  • 优点:读取效率高,适合处理大量输入。
  • 缺点:使用相对复杂,需要手动处理异常,且只能读取字符串,需要手动进行数据类型转换。

BufferedReader的高效原理

性能优势:通过缓冲减少底层IO操作次数,适合大规模数据输入(如蓝桥杯中的1e5量级)。

常用代码模板:

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String line = br.readLine();               // 读取整行

String[] parts = line.split(" ");          // 按空格分割

int a = Integer.parseInt(parts[0]);        // 转换为整数

多行输入处理:

while ((line = br.readLine()) != null) {   // 处理到输入结束

    // 处理每一行

}

3. 选择建议

比赛场景:优先使用BufferedReader,尤其当题目输入规模大时(如蓝桥杯填空题可能不卡时间,但编程题会)。

调试场景:可用Scanner快速验证逻辑。

二、数据类型

Java 是一种强类型语言,所有变量都必须先声明其数据类型。常见的数据类型可以分为两类:基本数据类型和引用数据类型。

基本数据类型
  • 整数类型byte(8 位)、short(16 位)、int(32 位)、long(64 位)。
  • 浮点类型float(32 位)、double(64 位)。
  • 字符类型char(16 位)。
  • 布尔类型boolean(true 或 false)。

2. 运算符的隐藏陷阱

整数除法:5 / 2 = 2,若需要小数结果,需强制类型转换:

double res = (double)5 / 2;  // 2.5

浮点数比较:避免直接使用==,需用误差判断:

double a = 0.1 + 0.2;

if (Math.abs(a - 0.3) < 1e-6) { ... }

自增运算符:i++与++i的区别(前者先取值后自增)。

引用数据类型
  • :如 StringDate 等。
  • 接口
  • 数组
三、 运算符

Java 中的运算符可以分为以下几类:

算术运算符

  • +(加法)、-(减法)、*(乘法)、/(除法)、%(取模)。
赋值运算符

  • =(赋值)、+=-=*=/=%= 等。
比较运算符

  • ==(相等)、!=(不相等)、>(大于)、<(小于)、>=(大于等于)、<=(小于等于)。
逻辑运算符

  • &&(逻辑与)、||(逻辑或)、!(逻辑非)。
四、 练习:A+B 问题(多种输入方式)
使用 Scanner
import java.util.Scanner;public class APlusBWithScanner {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int a = scanner.nextInt();int b = scanner.nextInt();int sum = a + b;System.out.println(sum);scanner.close();}}

使用 BufferedReader

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class APlusBWithBufferedReader {public static void main(String[] args) throws IOException {BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));String[] input = reader.readLine().split(" ");int a = Integer.parseInt(input[0]);int b = Integer.parseInt(input[1]);int sum = a + b;System.out.println(sum);reader.close();}}
  1. 练习:计算圆的面积(保留小数)
import java.text.DecimalFormat;import java.util.Scanner;public class CircleArea {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);double radius = scanner.nextDouble();double area = Math.PI * radius * radius;// 保留两位小数DecimalFormat df = new DecimalFormat("#.00");System.out.println(df.format(area));scanner.close();}}

五、 比赛时常错误的点
输入输出方面

  • Scanner 读取问题nextLine() 方法会读取换行符,如果在 nextInt() 等方法后使用 nextLine(),可能会读取到上一次输入的换行符,导致结果不符合预期。可以在 nextInt() 后再调用一次 nextLine() 来消耗换行符。
  • BufferedReader 异常处理:使用 BufferedReader 时需要处理 IOException,如果忘记处理会导致编译错误。
  • 输出格式:比赛中对输出格式要求严格,如是否需要换行、保留几位小数等,一定要按照题目要求输出。
数据类型方面

  • 数据溢出:使用整数类型时,如果数据超出了该类型的取值范围,会导致数据溢出,结果可能不符合预期。可以使用更大范围的数据类型,如 long
  • 浮点精度问题float 和 double 类型在进行精确计算时可能会出现精度问题,如比较两个浮点数是否相等时,不能直接使用 ==,可以使用一个很小的误差范围来判断。
运算符方面

  • 运算符优先级:不同运算符的优先级不同,可能会导致计算结果不符合预期。可以使用括号来明确运算顺序。

四、比赛高频错误点与避坑指南

1. 输入输出类错误

未处理多组输入:题目可能未明确说明输入组数,需用while循环读取。

未关闭流(BufferedReader):虽然蓝桥杯可能不扣分,但实际开发中需调用br.close()。

输入顺序错误:如题目要求先输入字符串后输入数字,顺序不可颠倒。

2. 数据溢出问题

int溢出:计算中间结果可能超出int范围,需改用long。

// 错误:1e9 * 3 = 3e9,超过int范围(2e9)

int a = 1000000000;

int b = a * 3;  // 溢出为负数!

// 正确:

long b = (long)a * 3;

3. 浮点数精度陷阱

累加误差:多次浮点运算可能导致误差累积,需用BigDecimal。

BigDecimal sum = new BigDecimal("0");

sum = sum.add(new BigDecimal("0.1")); // 精确计算

4. 输出格式错误

未保留末尾换行:部分题目要求输出后换行,需用println而非print。

多余空格:如输出应为1 2,误写为1 2(多空格)。

五、竞赛技巧与知识扩展

1. 快速输入模板(竞赛常用)

import java.io.*;import java.util.*;public class Main {public static void main(String[] args) throws IOException {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));StringTokenizer st = new StringTokenizer(br.readLine());int a = Integer.parseInt(st.nextToken());int b = Integer.parseInt(st.nextToken());System.out.println(a + b);}}

2. 位运算加速技巧

快速判断奇偶:(n & 1) == 1。

交换两数:a ^= b; b ^= a; a ^= b;(无需临时变量)。

3. 大数处理

BigInteger:处理超过long范围的整数。

BigDecimal:高精度浮点运算(如金融计算)。

六、总结与备赛建议

核心要点:

输入输出:优先掌握BufferedReader,理解其高效原理。

数据类型:警惕溢出和精度问题,必要时使用long或BigDecimal。

运算符:注意整数除法与浮点运算的差异。

备赛策略:

每日一练:至少完成5道基础题,强化输入输出和数据类型处理。

模拟比赛环境:使用在线判题系统(如蓝桥杯题库)熟悉时间压力。

错题复盘:记录每次练习中的错误,总结高频陷阱。

如果该文章对你有帮助,麻烦给个关注吧!

http://www.yayakq.cn/news/621554/

相关文章:

  • 网站的建设方法有哪些2018 84号建设厅网站
  • 网站服务器速度seo个人博客
  • 九龙坡建站公司网络品牌建设
  • 深圳开发的相亲网站中石化第四建设有限公司网站
  • 手机网站用什么系统哈尔滨制作网站
  • 五屏网站建设多少钱搜索引擎和门户网站的区别
  • 哈密建设集团有限责任公司网站官网网页制作
  • 一个网站能放多少关键词wordpress验证登录页面
  • wordpress 建企业网站wordpress 修改页面
  • 鹤壁做网站公司哪家好如何用网站设计制作
  • 网站建设评审会wordpress商城建站教程
  • 做网站需要买ip地址吗在电脑上怎么做网站
  • 廊坊网站推广排名网站开发工程师社交
  • 网站开发工程师面试题wordpress 春菜
  • 中国建设银行投标再什么网站上做网站需要多少屏
  • 辽河油田建设有限公司网站邯郸网站建设xy0310
  • 坑梓网站建设哪家好如何建自己网站做淘宝客
  • 专业做营销网站敦煌网站外引流怎么做
  • 代做单片机毕业设计网站技术支持上海网站建设
  • 模板网站建设服务商成都网站设计建设
  • 网站子网页怎么做娱乐网站建设ppt模板
  • 做网站投广告赚钱么网站建站公司有必要做吗
  • 织梦cms手机网站源码免费ktv网站模板
  • 公司设计说明汕头怎么进行关键词优化
  • 合肥做网站专家您提交的网站域名无备案
  • 服装印花图案网站115做网站
  • 网站挂马 屏蔽站长的ip网站设计怎么收费
  • 乡村旅游网站的建设分析wordpress调用tag标签带超链接
  • 佛山做一个自己的网站如何做链接
  • 网站建设编辑教程网页设计公司网站