一些知识点小细节

news2024/11/26 19:49:13
  1. 当遇到的问题有关逆序输出,可以转换一下思想,就是使用for循环的时候,i的初始化是从数组或者是字符串的最后一个,然后注意设置循环结束的条件,最重要的是不要忘记i--;而不是I++;  注意:当要逆序输出的是字符串类型,可以使用StringBuilder类,因为StringBuilder类有reverse方法,可以直接逆序,如:StringBuilder(s).reverse().toString();

但是string类型没有,因为string类型是不可变的,所以没有提供reverse方法。

StringBuilder类的reverse方法的使用:

String originalString = "hello";

StringBuilder reversedString = new StringBuilder(originalString).reverse();

System.out.println(reversedString.toString());

  1. ``Math.sqrt()` 是 Java 中的一个静态方法,用于计算一个数的平方根。在数学上,平方根函数表示对一个非负实数求其平方根。在 Java 中,`Math.sqrt()` 方法接受一个 double 类型的参数,返回值也是 double 类型,表示参数的平方根。例如,`Math.sqrt(9)` 将返回 3.0,因为 3 的平方是 9。
  2. 当涉及到从用户输入中读取文本时,Java中的Scanner类提供了两个主要的方法:next() 和 nextLine()。

next() 方法:

next() 方法用于读取下一个标记(默认是由空白字符分隔的字符串)并返回。

它会忽略任何前导的空白字符,并在遇到下一个空白字符(包括空格、制表符或换行符)时停止读取。

返回的字符串不包含遇到的空白字符。

nextLine() 方法:

nextLine() 方法用于读取输入中的下一行文本并返回。

它会读取包括换行符在内的整行文本,直到遇到换行符为止。

返回的字符串包含了遇到的换行符。

因此,当你想要读取整行文本时,应该使用 nextLine() 方法。而当你只需要读取下一个由空白字符分隔的标记时,可以使用 next() 方法。

4.闰年的判断: 能被 4 整除但不能被 100 整除的年份是闰年;

能被 400 整除的年份也是闰年。

5.       System.out.printf("%6.2f\n", num);

        System.out.printf("%6.2f %6.2f\n", num, num);

        System.out.printf("%6.2f %6.2f %6.2f\n", num, num, num);

效果:

这些代码是使用Java中的`System.out.printf()`方法来格式化输出。让我解释一下:

- `%6.2f`:这是一个格式说明符,它告诉`printf()`方法如何格式化输出。在这里,`%`表示格式说明的开始,`f`表示要格式化的是浮点数。`6`表示总字段宽度为6,`.2`表示保留两位小数。所以`%6.2f`将浮点数格式化为总宽度为6,保留两位小数的形式。

- `\n`:这是换行符,它告诉程序在输出完一行后换行到下一行。

- `%6.2f %6.2f`:这表示在同一行上输出两个格式化的浮点数,中间用空格分隔。

- `%6.2f %6.2f %6.2f`:同理,这表示在同一行上输出三个格式化的浮点数,每个数之间用空格分隔。

所以,这些代码中的`printf()`语句用于按照给定的格式输出浮点数。

  1. LinkedList 是一个双向链表,非常适合用于模拟环形结构,因为它可以高效地添加和删除元素。比如可以解决约瑟夫环问题。就可以用linkedList()
  2. 迭代器:

int count = 0; // 初始化报数计数器  

Iterator<Integer> iterator = circle.iterator(); // 使用迭代器遍历链表  

while (iterator.hasNext()) {  

    count++; // 报数加1  

    if (count == 3) { // 如果报数到3,淘汰当前人  

        iterator.next(); // 移动到当前人的位置(但不返回元素)  

        iterator.remove(); // 淘汰当前人  

        count = 0; // 重置报数计数器  

    } else {  

        iterator.next(); // 移动到当前人的位置(但不返回元素)  

    }  

}

  1. 什么时候需要加上nextLine();(总结起来就是,如果你输入字符串前有要输入基本数据类型的,就需要有nextLine),在读取整数后的下一行,使用 sc.nextLine() 来清空输入缓冲区。
  2. 在读取整数和读取字符串之间,添加 sc.nextLine() 来读取并丢弃多余的空行或换行符。

在Java中使用Scanner类读取输入时,特别是当输入包含多种类型(如整数和字符串)并且这些输入是连续的时候,通常需要格外注意换行符和输入缓冲区的状态。nextLine()方法会读取直到下一个换行符(包括换行符本身)为止的所有字符,并将其作为一个字符串返回。而nextInt(), nextDouble()等方法只会读取相应的整数或浮点数,然后停留在换行符之前,不会读取换行符。

以下是一些需要添加nextLine()的常见情况:

在读取非字符串类型之后读取字符串:当你首先使用nextInt(), nextDouble()等方法读取一个整数或浮点数后,紧接着使用nextLine()读取一个字符串时,如果不先调用nextLine()来消耗掉输入缓冲区中的换行符,nextLine()将会立即返回,因为它已经遇到了换行符。

java

Scanner sc = new Scanner(System.in);  

int number = sc.nextInt(); // 用户输入数字后按回车,换行符留在缓冲区中  

String text = sc.nextLine(); // 如果没有先调用sc.nextLine(),这里会立即返回空字符串

需要忽略多余的换行符:有时候用户可能在输入之间不小心多按了几次回车,导致输入缓冲区中有多个换行符。在这些情况下,使用nextLine()可以帮助清除这些额外的换行符。

在循环中读取输入:如果你在一个循环中读取输入,特别是当每次迭代都期望用户输入一个全新的值时,你可能需要在每次迭代开始时使用nextLine()来确保输入缓冲区是干净的。

要决定是否需要在特定情况下使用nextLine(),你应该考虑以下几点:

输入的类型:你是否在读取整数或浮点数之后立即读取字符串

输入的顺序:用户输入的顺序是否符合你的程序预期?

输入缓冲区的状态:你是否确信输入缓冲区中没有残留的换行符或其他字符?

如果你不确定是否需要使用nextLine(),一种简单的测试方法是尝试输入一些数据,并观察程序的行为是否符合预期。如果程序没有按预期工作,那么可能就需要考虑使用nextLine()来清理输入缓冲区。

9.平年和闰年问题平年和闰年是用来区分公历年份的两种不同情况,主要区别在于二月的天数不同。

平年是指阳历没有闰日或农历没有闰月的年份。在平年中,二月有28天,全年有365天。例如,2023年就是一个平年。

闰年则是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而设立的。在公历(阳历)中,有闰日的年份叫闰年,一般年份为365天,闰年为366天。在闰年中,二月有29天,全年有366天。

确定一个年份是否为闰年,有以下几个规则:

  1. 如果年份能被4整除但不能被100整除,则为闰年。
  2. 如果年份能被400整除,也是闰年。

例如,2000年是闰年,因为它能被400整除;而1900年则不是闰年,因为它虽然能被4整除,但也能被100整除,并且不能被400整除。

这些规则的应用对于日历、时间计算、历史研究等都具有重要意义。了解平年和闰年的区别和规则有助于我们更准确地进行时间相关的计算和理解。

  1. 进制转换

. **进制转换方法**:

   - Java提供了一些内置方法用于进制转换,例如:

     - `Integer.toBinaryString(int)`:将整数转换为二进制字符串。

     - `Integer.toOctalString(int)`:将整数转换为八进制字符串。

     - `Integer.toHexString(int)`:将整数转换为十六进制字符串。

     - `Integer.parseInt(String, radix)`:将指定进制的字符串转换为十进制整数,其中radix为进制数。

. **BigInteger类**:

   - 当处理大整数时,可以使用`java.math.BigInteger`类。

   - 这个类提供了用于处理任意精度整数的方法,包括转换为不同进制的字符串表示。

 **字符串与整数之间的转换**:

   - Java中可以使用`Integer.parseInt(String)`方法将字符串解析为整数,还可以指定基数。

   - 另外,`Integer.toString(int)`方法可以将整数转换为字符串表示。

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

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

相关文章

蚓链赋能企业拥有“数据能力”会带来哪些变革?

数字时代&#xff0c;对任何一家无论大小的企业&#xff0c;数据都是不可或缺的资源和工具。蚓链赋能企业拥有“数据能力”将会给企业带来哪些变革呢&#xff1f; 首先&#xff0c;将会提高企业的业务效率&#xff0c;通过数据分析和挖掘&#xff0c;企业可以更好地了解客户需…

Composer安装与配置

Composer&#xff0c;作为PHP的依赖管理工具&#xff0c;极大地简化了PHP项目中第三方库的安装、更新与管理过程。本文将详细介绍Composer的安装步骤、基本配置方法&#xff0c;以及一些实用的操作示例&#xff0c;帮助读者快速上手并熟练运用Composer。 一、Composer安装 环…

redis 数据迁移到rds2214(TongRDS-2.2.1.3.Load版 by lqw)

​ 文章目录 一.备份redis文件 vi redis.conf &#xff0c;看看有没有这两行设置&#xff0c;有的话改成跟下面的一致&#xff1a; appendonly yes appendfilename “appendonly.aof” 之后连接redis客户端&#xff0c;输入INFO persistence&#xff0c;如图所示即为开启成功…

中国历年GDP统计-探数API统计

数据介绍 时间维度&#xff1a;1978年-2021年 单位&#xff1a;亿元 该数据来源于国家统计局发布的中国统计年鉴2021&#xff0c;为按当年价格计算的中国历年GDP以及人均GDP。 数据说明&#xff1a; 数据来源于国家统计局。

SpringBoot-自定义Starter精华版

SpringBoot自定义Starter精华版 一、自定义 Starter 分析 项目首先加载 starter,starter加载自动配置类&#xff0c;然后再通过配置绑定对象读取配置属性&#xff0c;注册组件。 二、实现步骤 ​ 开发的自定义 Starter 需求是&#xff0c;项目依赖starterTest-spring-boot-s…

重生奇迹MU圣导师与弓箭手职业对比

职业定位对比 在职业定位上&#xff0c;弓箭手是一个远程物理输出职业&#xff0c;不过弓箭手也有一定的辅助能力&#xff0c;可以为队友提供控场效果&#xff0c;还能为队友提供一个攻击力加成BUFF。同时弓箭手也是一个非常需要操作的职业&#xff0c;想要玩好这个职业&#…

智能体Agent是AI时代普通人可参与的第一个红利机会

自从生成式 AI 兴起&#xff0c;掌握 prompt 能让 AI 工具更好为我们服务。而智能体的出现&#xff0c;让 AI 的使用门槛更是不断降低——都不用写 Prompt 了&#xff0c;直接用智能体就行了。 智能体Agent是AI时代普通人可参与的第一个红利机会© 由 ZAKER科技 提供 前几…

基于java+springboot+vue实现的药品管理系统(文末源码+Lw)23-297

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理&#xff0c;然而&#xff0c;随着近些年信息技术的迅猛发展&#xff0c;让许多比较老套的信息管理模式进行了更新迭代&#xff0c;药品信息因为其管理内容繁杂&#xff0c;管理数量繁多导致手工进行处理不能满足广…

Go 自定义14位时间类型 yyyyMMddHHmmss

目录 功能 代码 功能 数据库或者接口时间类型&#xff0c;经常会使用14位的时间格式。每次都转换有点麻烦。可以自定义一个时间类型。 自定义类型需要实现json接口中的MarshalJSON与UnmarshalJSON两个函数&#xff0c;这样在做json编码解码时就会自动转为14位的时间格式了。…

【力扣】142. 环形链表 II

142. 环形链表 II 题目描述 给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&am…

第6章:6.3.3 正则表达式的应用 (MATLAB入门课程)

讲解视频&#xff1a;可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇&#xff08;数学建模清风主讲&#xff0c;适合零基础同学观看&#xff09;_哔哩哔哩_bilibili 到目前为止&#xff0c;我们已经系统地介绍了正则表达式的基本语…

Bytebase 2.15.0 - GitOps 整体升级

&#x1f514; GitOps 整体升级 新版 GitOps 和之前版本不兼容&#xff0c;如果需要升级协助&#xff0c;请联系我们。 使用访问令牌进行身份验证。支持项目中配置多个 VCS 连接器。支持在 VCS 连接器中指定数据库分组为目标&#xff08;默认情况下应用于项目中的所有数据库&…

uni-app实现下拉刷新

业务逻辑如下&#xff1a; 1.在滚动容器中加入refresher-enabled属性&#xff0c;表示为开启下拉刷新 2.监听事件&#xff0c;添加refresherrefresh事件 3.在事件监听函数中加载数据 4.关闭动画&#xff0c;添加refresher-triggered属性&#xff0c;在数据请求前开启刷新动画…

自营商城上货采集,上货软件采集(淘宝1688)接口

自营商城上货采集及上货软件采集涉及到淘宝和1688等平台的接口时&#xff0c;主要流程包括确定数据源、申请API权限、编写自动化采集脚本以及后续的数据处理和商城上货。 taobao.item_get-获取淘宝商品数据接口返回值说明 1.请求方式&#xff1a;HTTP POST GET &#xff08;复…

信息学奥赛一本通T1441-生日蛋糕【dfs】

信息学奥赛一本通T1441-生日蛋糕 - C语言网 (dotcpp.com) #include <iostream> #include <algorithm> #include <cmath> using namespace std; const int N1e5100; int n,m; int res1e9; void dfs(int spv,int cnt,int r,int h,int sarea) //spv:剩余的体积&…

【电控笔记0】拉式转换与转移函数

概要 laplace&#xff1a;单输入单输出&#xff0c;线性系统 laplace 传递函数 总结

Codeforces Round 521 (Div. 3)

目录 A. Frog Jumping B. Disturbed People C. Good Array D. Cutting Out E. Thematic Contests F1. Pictures with Kittens (easy version) F2. Pictures with Kittens (hard version) A. Frog Jumping 直接模拟即可注意数据范围需要开long long void solve(){LL a,…

【七 (2)FineBI-平台新增用户留存分析】

目录 文章导航一、字段解释1、用户平台登录信息表格2、用户平台激活信息表格 二、需求三、操作步骤1、建立用户平台登录信息表格和用户平台激活信息表格的关联关系2、将用户平台激活信息表格的激活日期添加到用户平台登录信息表格3、新增公式列&#xff0c;计算激活时间和登录时…

超详细的YOLOv8项目组成解析:一站式指南了解其架构与组件

目录 yolov8导航 YOLOv8&#xff08;附带各种任务详细说明链接&#xff09; 项目结构 1. .github 2. docker 2.1 docker/Dockerfile 2.2 docker/Dockerfile-arm64 2.3 docker/Dockerfile-conda 2.4 docker/Dockerfile-cpu 2.5 docker/Dockerfile-jetson 2.6 docker/D…

SQLite 在Android安装与定制方案(十七)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite超详细的编译时选项&#xff08;十六&#xff09; 下一篇&#xff1a;SQLite Android 绑定&#xff08;十八&#xff09; 安装 有三种方法可以将 SQLite Android 绑定添加到应用程序&#xff1a; 1、通过…