Java的输入输出

秋招笔试很多都是要自己写输出输出的,所以对常见的整理一下,后续也会持续更新的~~~

目录

1.java中的Scanner类

1.1next()方法和nextLine()方法的区别

1. next() 方法

示例

2. nextLine() 方法

示例

主要区别

使用场景

2.print类

3.常用的转换函数类 

3.1.String.valueOf

3.2 Integer.parseInt

3.3. toCharArray 

3.4.substring

参数说明

3.5.split方法

参数说明

返回值

3.6.trim方法

3.7.字符串中常用的函数

4.常见输入

4.1.输入是整数序列

4.2.输入整数数组

4.3.输入是字符串数组形式

整体代码如下:

4.4. 输入是字符形式

1.java中的Scanner类

  • hasNext()方法:用于判断方法是否还有输入

  • next()方法:用于读取下一个输入

  • nextLine():用于读取一行输入

  • hasNextInt() 和 nextInt() 读取一个整数

  • hasNextDouble()和nextDouble():读取一个浮点数

1.1next()方法和nextLine()方法的区别

next()方法遇到空格就停止了,而nextLine方法会读取一整行

1. next() 方法

  • 用途next() 方法用于读取输入中的下一个完整的“token”(标记)。一个token通常是由非空白字符组成的序列。
  • 行为:它读取输入直到遇到空白字符(如空格、制表符或换行符),然后停止读取。它不会读取这些空白字符。
  • 返回值:返回的是一个字符串,代表读取的token。
  • 特点:如果输入中的第一个字符是空白字符,next() 将只读取到第一个非空白字符为止。

示例

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a word: ");
String word = scanner.next();
System.out.println("You entered: " + word);

如果用户输入 Hello Worldnext() 将只读取 Hello 并将其返回,而 World 将留在输入缓冲区中。

2. nextLine() 方法

  • 用途nextLine() 方法用于读取输入中的一整行,包括空格。
  • 行为:它从当前位置开始读取,直到遇到换行符(\n),然后停止读取。它会返回包括换行符在内的所有字符,或者直到输入结束。
  • 返回值:返回的是一个字符串,代表读取的整行。
  • 特点nextLine() 会读取并返回当前行的剩余部分,包括任何空白字符。

示例

Scanner scanner = new Scanner(System.in);
System.out.print("Enter a line: ");
String line = scanner.nextLine();
System.out.println("You entered: \"" + line + "\"");

如果用户输入 Hello World 然后按回车,nextLine() 将读取 Hello World 包括后面的换行符,并将其全部返回。

主要区别

  1. 读取内容next() 只读取到下一个空白字符为止,而 nextLine() 读取整行,包括所有空格。
  2. 空白处理next() 忽略空白字符,而 nextLine() 包括空白字符。
  3. 换行符nextLine() 包括换行符在返回的字符串中,而 next() 不包括。

使用场景

  • 使用 next() 当你需要读取单个单词或标记,并且希望自动忽略任何后续的空白。
  • 使用 nextLine() 当你需要读取完整的行,包括所有的空格和制表符。

2.print类

  1. System.out.print()

    • 用于打印信息到控制台,但不会自动换行。如果需要在打印后换行,可以手动添加 \n。 
  2. System.out.println()

    • 用于打印信息到控制台,并在打印结束后自动换行。
  3. System.out.printf()

    用于格式化输出信息到控制台。它允许你控制输出的格式,类似于C语言中的 printf 
// 格式化输出一个带有小数点的数字double temperature = 36.5789;System.out.printf("当前体温是: %.2f 度\n", temperature);

3.常用的转换函数类 

Java版本:

3.1.String.valueOf

String.valueOf 是一个静态方法,用于将各种数据类型转换为它们的字符串表示形式

方法是 String 类的一个实用工具方法,它可以接受不同类型的参数,如整数、浮点数、对象等,并返回相应的字符串表示。

eg:

int num = 123;
String str = String.valueOf(num);
System.out.println(str); // 输出: "123"

3.2 Integer.parseInt

将字符串转换为整数

String numberStr = "123";
int number = Integer.parseInt(numberStr); // number 变量的值将是 123

3.3. toCharArray 

toCharArray 是一个方法,它属于 String 类和 StringBuilder 类。这个方法用于将字符串或字符串构建器对象转换为字符数组。

String str = "Hello";
char[] charArray = str.toCharArray();
System.out.println(charArray); // 输出: [H, e, l, l, o]

3.4.substring

substring 方法是 String 类的一个非常有用的实例方法,它用于从原始字符串中提取子字符串。

  1. substring(int beginIndex):从 beginIndex 指定的位置开始提取,直到字符串的末尾。
  2. substring(int beginIndex, int endIndex):从 beginIndex 指定的位置开始,到 endIndex 指定的位置结束(但不包括 endIndex 指定的字符)。

参数说明

  • beginIndex:子字符串开始处的索引(包括此索引)。
  • endIndex:子字符串结束处的索引(不包括此索引)。

3.5.split方法

split 方法是 String 类的一个非常有用的方法,它用于根据指定的分隔符将字符串分割成多个子字符串,并返回一个字符串数组。这个方法非常灵活,可以处理各种字符串分割的需求.

split 方法有两种重载形式:

  1. split(String regex):根据给定的正则表达式 regex 将字符串分割成多个子字符串。
  2. split(String regex, int limit):除了根据正则表达式分割字符串外,还可以指定一个限制参数 limit,用于控制返回数组的最大长度。

参数说明

  • regex:一个正则表达式,用于指定分割字符串的规则。
  • limit(可选):一个整数,用于限制返回数组的最大长度。如果省略这个参数,将返回所有分割后的子字符串。

返回值

  • 返回一个字符串数组,包含分割后的所有子字符串。
String str = "one,two,three";
String[] parts = str.split(",");
System.out.println(Arrays.toString(parts)); // 输出:[one, two, three]

3.6.trim方法

number[i].trim是移除字符串两段的空白元素

3.7.字符串中常用的函数

参考链接:

Java常用字符串方法_java字符串方法-CSDN博客

4.常见输入

4.1.输入是整数序列

1,2,3 类似于这样的

        Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();int[] nums = new int[n];for(int i=0;i<n; i++){nums[i]= scanner.nextInt();}

4.2.输入整数数组

[1,2,3,0]这样格式的

  • 首先将整数数组转换成字符串
  • 然后去除字符串的收尾[]
  • 用,号进行分割
  • 将字符串转为整数
Scanner scanner = new Scanner(System.in);// 提示用户输入数组System.out.println("请输入一个数组(例如 [1,2,3,4,0]):");String input = scanner.nextLine();// 去除输入字符串的首尾方括号input = input.substring(1, input.length() - 1);// 将输入的字符串分割成单独的数字字符串String[] numbers = input.split(",");// 创建一个数组来存储整数int[] array = new int[numbers.length];// 将字符串数组转换为整数数组for (int i = 0; i < numbers.length; i++) {array[i] = Integer.parseInt(numbers[i].trim());}// 关闭 Scanner 对象scanner.close();

假如这个题是输入一个整数数组然后对其进行排序再输出,后面的输出部分如下:

// 对数组进行排序Arrays.sort(array);// 输出排序后的数组System.out.print("排序后的数组: [");for (int i = 0; i < array.length; i++) {System.out.print(array[i]);if (i < array.length - 1) {System.out.print(", ");}}System.out.println("]");

4.3.输入是字符串数组形式

例如这样的格式["a","e"," ","f"]

我们以一个题举例吧,对上面的字符串数组求反变为["f"," ", "e","a"]

读取输入输出的整体思路

  • 去除收尾的方括号
  • 将字符串进行分割(使用到正则表达式)====》转为字符串数组
  • 输出时添加方括号和逗号

整体代码如下:

public class ReverseArray {public static void main(String[] args) {// 创建一个 Scanner 对象来读取控制台输入Scanner scanner = new Scanner(System.in);// 提示用户输入一个格式化的字符串数组System.out.println("请输入一个字符串数组(例如 [\"a\",\"b\",\"\" ,\"d\" ,\"f\"]):");String input = scanner.nextLine();// 去除输入字符串的首尾方括号input = input.substring(1, input.length() - 1);// 将输入的字符串分割成单独的字符串元素String[] elements = input.split("\\s*,\\s*");for (int i = 0; i < elements.length; i++) {System.out.println(elements[i]);}// 反转数组String[] reversedArray = reverseArray(elements);// 输出反转后的数组System.out.print("反转后的数组: [");// boolean isFirst = true; // 用于控制逗号的打印for (int i = 0; i < reversedArray.length; i++) {System.out.print( reversedArray[i]);if (i < reversedArray.length - 1){System.out.print(",");}}System.out.println("]");}// 反转数组的方法public static String[] reverseArray(String[] array) {// 创建一个新的字符串数组,长度与原数组相同String[] reversed = new String[array.length];// 遍历原数组,并将元素按相反顺序放入新数组for (int i = 0; i < array.length; i++) {reversed[i] = array[array.length - 1 - i];}// 返回反转后的数组return reversed;}
}

怎么控制什么时候添加和不添加逗号,倒数第二次循环

4.4. 输入是字符形式

后续有新的也会持续更新的~~~~~

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

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

相关文章

JAVA算法数据结构第一节稀疏矩阵

一、稀疏矩阵介绍&#xff1a; 稀疏矩阵是一种特殊类型的矩阵&#xff0c;其中大部分元素都是零。在处理这类矩阵时&#xff0c;如果仍然使用标准的矩阵存储方式&#xff08;即传统的二维数组&#xff09;&#xff0c;则会浪费大量的存储空间来保存零值。为了提高存储效率以及…

iptables部署使用

1、Iptables-server安装确认 [rootlocalhost ~]$ rpm -qa|grep iptables #查看安装iptables iptables-1.4.21-18.0.1.el7.centos.x86_64 [rootlocalhost ~]$ rpm -ql iptables #查看iptables相关文件 2、安装iptables-services [rootlocalhost ~]$ yum list all|grep iptab…

Ubuntu24.04 安装opencv4.10

Ubuntu24.04 安装opencv4.10 一、下载OpenCV二、更新系统&#xff0c;安装必要的包1、“E: unable to locate libjasper-dev"的解决方法2、没有公钥&#xff0c;无法验证下列签名 :NO_PUBKEY 的解决方法 三、配置&#xff0c;使用cmake工具1、新建build目录2、在build中&a…

【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的?

【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的&#xff1f; 【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的&#xff1f; 文章目录 【梯度下降|链式法则】卷积神经网络中的参数是如何传输和更新的&#xff1f;1. 什么是梯度&#xff1f;2.梯度…

2024 VMpro 虚拟机中如何给Ubuntu Linux操作系统配置联网

现在这是一个联网的状态 可以在商店里面下载东西 也能ping成功 打开虚拟网络编辑器 放管理员权限 进行设置的更改 选择DNS设置 按提示修改即可 注意的是首选的DNS服务器必须是114.114.114.114 原因 这边刚刚去查了一下 114.114.114.114 是国内的IP地址 8.8.8.8 是国外的I…

MySQL record 05 part

外键 注意&#xff0c;外键所在的表一般被称为从表&#xff0c;被引用的表被称为主表。 直接删除主表会报错&#xff0c;因为主表被从表&#xff08;有外键的那个表&#xff09;所引用,所以&#xff0c;删除主表&#xff08;被引用数据的表&#xff09;之前&#xff0c;要先删除…

【宠物小精灵之收服(待更新)】

题目 代码 #include <bits/stdc.h> using namespace std; int f[1010][510]; int main() {int n, m, k;cin >> n >> m >> k;int c 0;for(int i 1; i < k; i){int cost, hp;cin >> cost >> hp;for(int j n; j > cost; j--){for(i…

EndnoteX9安装及使用教程

EndnoteX9安装及使用教程 一、EndNote安装 1.1 下载 这里提供一个下载链接&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1RlGJksQ67YDIhz4tBmph6Q 提取码&#xff1a;5210 解压完成后&#xff0c;如下所示&#xff1a; 1.2 安装 双击右键进行安装 安装比较简单…

ChatGPT有三个快捷指令和三个模式,你知道吗?

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;专注于分享AI全维度知识&#xff0c;包括但不限于AI科普&#xff0c;AI工…

Vue3 项目实战甄选硅谷

1.技术选型 2.搭建Vue3 项目使用pnpm 1.安装pnpm pnpm安装 npm i -g pnpm 2.项目初始化 pnpm create vite cd ./project pnpm i pnpm run dev 初始化完成 3.项目开始之前先对项目进行一些配置 1.想让刚启动项目浏览器自动打开 找到 2.eslint配置 1.安装eslint pnpm…

Java算法总结

文章目录 一、链表相关1.1 从尾到头打印单链表[要求 方式1&#xff1a;反向遍历。方式2&#xff1a;Stack栈]1.2 josephu问题&#xff08;使用带尾指针的循环链表&#xff09; 二、动态规划2.1 斐波那契数列 2022.4.182.2 青蛙上台阶 2022.4.18 三、位运算符3.1 二进制中1的个数…

【Python爬虫系列】_023.关于视频爬取

课 程 推 荐我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈…

全方位解读信息架构:从挑战到解决方案,推动企业数字化转型的全面指南

在数字经济迅猛发展的今天&#xff0c;信息架构 已经成为企业实现数字化转型、提高运营效率和优化 IT 投资的关键手段。无论是初创企业还是成熟企业&#xff0c;构建和实施有效的信息架构不仅能支持业务增长&#xff0c;还能确保数据安全和合规性。《信息架构&#xff1a;商业智…

如何在kotlin中给空字符串(””)和null值设置默认值问题?

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。 &#x1f60a; 座右铭&#xff1a;不…

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF

回归预测|基于鲸鱼优化随机森林数据的数据回归预测Matlab程序 多特征输入单输出WOA-RF 文章目录 一、基本原理鲸鱼优化算法&#xff08;WOA&#xff09;随机森林&#xff08;RF&#xff09;WOA-RF的结合总结 二、实验结果三、核心代码四、代码获取五、总结 一、基本原理 WOA-R…

数据结构——树(终极版)

树的基本概念&#xff1a; 树的顶部是根节点也是树的入口 父节点&#xff1a;例如&#xff1a;B是F的父节点 子节点&#xff1a;树中的每个节点都可以有0个或多个子节点 叶子节点&#xff1a;像KLFGMIJ这种没有子节点的节点 节点的度&#xff1a;节点的子节点数&#xff1…

Minio环境搭建(单机安装包、docker)(一)

前言&#xff1a; 项目中客户不愿意掏钱买oss&#xff0c;无奈只能给他免费大保健来一套。本篇文章只是记录验证可行性&#xff0c;毕竟minio太少文档了&#xff0c;参考着官网来。后面还会再出一套验证集群部署的文章。 一、资料 MinIO官网&#xff1a; MinIO | S3 Compatib…

使用Qt 搭建简单雷达

目录 1.简易雷达图思维导图 2.结果展示图 3.制作流程 3.1表盘的绘制 3.1.1 绘制底色 ​编辑 3.1.2 绘制大圆 3.3.3绘制小圆 3.3.4 绘制小圆的内容 3.3.5 绘制表盘刻度和数字标注 3.3.6 绘制指针 3.3.7 绘制扇形 3.2 设置定时器让表盘动起来 3.3.1 设置动态指针…

Fastjson反序列化漏洞——JNDI注入

一.前言 之前使用反序列化和序列化时写入的到文件里面的&#xff0c;真实环境中&#xff0c;也是这样吗&#xff1f; 当然不是了&#xff0c;通过二进制&#xff0c;字节流数据进行的。 为什么会有JNDI&#xff1f; 由于http和ftp传输消耗资源仍然很大&#xff0c;就有了JRM…

EasyRecovery 17完美破解版 2024 年最新永久免费使用 EasyRecovery激活图文教程

我们在平时使用电脑或者操作文件过程中&#xff0c;或多或少都有过格式化文件或者为了方便&#xff0c;直接摁住了shifitdelete键&#xff1b;删除后发现&#xff0c;我们删错了&#xff0c;有些文件不是我们要删的&#xff0c;甚至有的文件是特别重要的&#xff1b;这时候恢复…