一些知识点小细节

  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.hqwc.cn/news/615376.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Day 39:动态规划 LeedCode 62.不同路径 63. 不同路径 II

62. 不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#…

Suno AI

Suno is the latest big name in AI, but what is it? Keep reading to learn everything you need to know about Suno AI, including what it is, what it can do, and how much it costs. Suno AI是一款由Anthropic公司开发的人工智能音乐生成器&#xff0c;它利用先进…

在 Vue 3 中如何利用 TypeScript 进行类型检查和类型推断?

在 Vue 3 中&#xff0c;TypeScript 的集成得到了显著的改进&#xff0c;使得开发者可以更加便捷地进行类型检查和类型推断。以下是一些在 Vue 3 中利用 TypeScript 进行类型检查和类型推断的方法&#xff1a; 使用 <script setup> 语法&#xff1a;<script setup>…

Android适配平板屏幕尺寸

一、划分手机和平板 人为判断方法: 大于6英寸的就是平板。小于6英寸的都是手机 平板尺寸&#xff1a; 6英寸、7英寸、10英寸、14英寸… Android系统支持多配置资源文件&#xff0c;我们可以追加新的资源目录到你的Android项目中。命名规范&#xff1a; 资源名字-限制符 l…

python比较两张图片是否一样并复制

python比较两张图片是否一样并复制 1、导入库 pip install imagehash2、流程 1、通过PIL.image读取两张图片 2、通过imagehash.average_hash计算两张图片的哈希值并计较 3、如果相同则使用shutil.copy复制3、示例 img文件夹下有以下三张图片 import os import shutilimpo…

【机器学习】深入剖析贝叶斯算法原理及其广泛应用

一、引言 在机器学习的广阔领域中&#xff0c;贝叶斯算法以其独特的概率推理方式占据了重要的地位。它不仅为分类问题提供了有效的解决方案&#xff0c;还在自然语言处理、信息检索、垃圾邮件过滤等诸多领域发挥着不可替代的作用。 贝叶斯算法的基本思想源于贝叶斯定理&#xf…

MySQL基础知识——MySQL架构

看一个事儿千万不要直接陷入细节里&#xff0c;你应该先鸟瞰其全貌&#xff0c;这样能够帮助你从高维度理解问题。 同样&#xff0c; 对于MySQL的学习也是这样。平时我们使用数据库&#xff0c;看到的通常都是一个整体。 比如&#xff0c;你有个最简单的表&#xff0c;表里只…

JS - BOM(浏览器对象模型)

BOM 浏览器对象模型 BOM可以使我们通过JS来操作浏览器 在BOM中为我们提供了一组对象&#xff0c;用来完成对浏览器的操作 BOM对象 BOM&#xff08;Browser Object Model&#xff09;是指浏览器对象模型&#xff0c;它提供了与浏览器窗口进行交互的对象和方法。BOM包括一些核…

Xcode 15.0 新 #Preview 预览让 SwiftUI 界面调试更加悠然自得

概览 从 Xcode 15 开始&#xff0c;苹果推出了新的 #Preview 宏预览机制&#xff0c;它无论从语法还是灵活性上都远远超过之前的预览方式。#Preview 不但可以实时预览 SwiftUI 视图&#xff0c;而且对 UIKit 的界面预览也是信手拈来。 想学习新 #Preview 预览的一些超实用调试…

什么场景适合使用Traefik?

Traefik 作为一款现代的反向代理和负载均衡器&#xff0c;已经成为云原生环境中的热门选择。它提供的动态配置能力和强大的自动化功能使其在多种场景中非常有用。本文将详细探讨适合使用 Traefik 的几种关键场景&#xff0c;并解释为何在这些情况下它特别有用 &#x1f30d;&am…

Java基础第十一课——类与对象(2)

由于类与对象这一部分的知识点很多&#xff0c;而且操作方法也有很多&#xff0c;所以这次将继续深入讨论一下关于类与对象中方法传参、方法重载、构造方法以及this关键字使用方面的知识。 一、方法传参 1.return关键字 return关键字作用 作用场景&#xff1a;方法内 作用…

AndroidAutomotive模块介绍(二)应用及接口介绍

前言 上一篇文章中从整体角度描述了 Android Automotive 模块。本篇文章将对 Android Automotive 中的 APP 以及 API 部分展开描述。 上一篇&#xff1a;AndroidAutomotive模块介绍&#xff08;一&#xff09;整体介绍 下一篇&#xff1a;AndroidAutomotive模块介绍&#xff0…