返回顶部
首页 > 资讯 > 后端开发 > Python >java之scan.next()与scan.nextline()函数的使用及区别
  • 422
分享到

java之scan.next()与scan.nextline()函数的使用及区别

Python 官方文档:入门教程 => 点击学习

摘要

目录scan.next()与scan.nextline()函数的使用及区别Scanner类的next()和nextLine()方法next()方法nextLine()方法总结scan

scan.next()与scan.nextline()函数的使用及区别

今天在做牛客网编程练习题“length of last Word”时,当编写实现代码时,使用split()函数对输入的字符串进行按空格符分割,确遇到了”奇葩“的问题,每次只能得到第一个字符串。

开始以为是split()函数用错了,查了资料确定无误后,觉得应该是输入的有问题。

于是进行了下面的实验:

import java.util.Scanner;

public class Solution {
    
	public static void main(String[] args) {
		String s_next = "";
		String s_nextLine = "";
		int count_next = 0; // 计数
		int count_nextLine = 0; // 计数
		Scanner scan = new Scanner(System.in);  
		System.out.println("请输入第一个字符串:");	
		s_nextLine = scan.nextLine(); // 此处使用nextLine(),便于对比
		System.out.println("请输入第二个字符串:");	
		s_next = scan.next(); // 第一次使用的next();
		
		scan.close();
		
		String [] split_next = s_next.split("\\s+");
		String [] split_nextLine = s_nextLine.split("\\s+");
		
		for(String s : split_next)
			System.out.println("子串next: "+ count_next++ +": "+ s + " 长度: " + s.length()+ '\n');
		
		for(String s : split_nextLine)
			System.out.println("子串nextLine: "+ count_nextLine++ +": "+ s + " 长度: " + s.length()+ '\n');
		
	}

}

测试结果

也验证了我的猜想

这里写图片描述

注意:

自省,也希望能对大家有所帮助,少走弯路。

  • 用 Scanner 实现字符串的输入有两种方法,一种是next(),一种nextLine();
  • next() 一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next() 方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。
  • nextLine()方法的结束符只是Enter键。

简言之,next方法不能得到带空格的字符串,而nextLine()方法返回的是Enter键之前的所有字符,因此出现了上面测试样例的结果。(ps.一定要注意!)

Scanner类的next()和nextLine()方法

java的Scanner类可以用来接收键盘输入的数据。next()和nextLine()方法用来接收字符串,next()方法接收字符串时遇到空格或回车结束输入,而nextLine()方法可以接收空格,最后输入回车才结束。下面用实例演示

两者的区别:

next()方法

package scanner;
import java.util.Scanner;
public class Scan {

	public static void main(String[] args) {
		
		String a,b;
		Scanner sc=new Scanner(System.in);
		System.out.println("next()方法接收字符串:");
		a=sc.next();
		System.out.println(a);
	}

}

运行结果截图:

在这里插入图片描述

nextLine()方法

package scanner;
import java.util.Scanner;
public class Scan {
	public static void main(String[] args) {
		String a,b;
		Scanner sc=new Scanner(System.in);
		System.out.println("nextLine()方法接收字符串:");
		b=sc.nextLine();
	    System.out.println(b);
	}
}

运行结果截图:

在这里插入图片描述

两个方法一起用可能会出错:

package scanner;
import java.util.Scanner;
public class Scan {
	public static void main(String[] args) {
		String a,b;
		Scanner sc=new Scanner(System.in);
		System.out.println("next()方法接收字符串:");
		a=sc.next();
		System.out.println(a);
		System.out.println("nextLine()方法接收字符串:");
		b=sc.nextLine();
	    System.out.println(b);
	}
}

运行结果截图:

这时程序已结束运行

这时程序已结束运行,不能再输入。原因是next()方法遇到回车结束输入,却把最后的回车符留给了nextLine(),nextLine()方法接收了一个空字符串。

解决方法是next()方法后面再加一个nextLine()用来接收回车符,代码如下:

package scanner;
import java.util.Scanner;
public class Scan {
	public static void main(String[] args) {
		String a,b;
		Scanner sc=new Scanner(System.in);
		System.out.println("next()方法接收字符串:");
		a=sc.next();
		System.out.println(a);
		a=sc.nextLine();//接收回车符
		System.out.println("nextLine()方法接收字符串:");
		b=sc.nextLine();
	    System.out.println(b);
	}
}

运行结果截图:

在这里插入图片描述

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: java之scan.next()与scan.nextline()函数的使用及区别

本文链接: https://lsjlt.com/news/202952.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • java之scan.next()与scan.nextline()函数的使用及区别
    目录scan.next()与scan.nextline()函数的使用及区别Scanner类的next()和nextLine()方法next()方法nextLine()方法总结scan...
    99+
    2023-05-14
    java中scan.next()使用 java中scan.nextline()使用 scan.next()与scan.nextline()区别
  • java之scan.next()与scan.nextline()函数如何使用
    这篇文章主要讲解了“java之scan.next()与scan.nextline()函数如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“java之scan.next()与scan.ne...
    99+
    2023-07-05
  • PHP 函数与 Java 函数的区别?
    php 和 java 函数的主要区别在于:php 函数通过引用传递参数,而 java 函数通过值传递参数。php 函数通常没有明确的类型签名,而 java 函数具有严格的类型签名。php...
    99+
    2024-04-25
    java php
  • .Net7函数Ctor与CCtor使用及区别详解
    目录楔子目的非手段.Ctor目的.CCtor目的楔子 有小伙伴被面试官问到这个问题,本篇彻底解析下这个问题。 为了彻底点,注意本篇是最底层的.Net 7 RC CLR运行模型(汇编)...
    99+
    2022-11-13
    .Net 7函数Ctor CCtor .Net 7 Ctor CCtor
  • C++ 虚函数与纯虚函数的使用与区别
    目录什么是虚函数:虚函数的注意事项:纯虚函数纯虚函数的注意事项:虚函数与纯虚函数区别什么是虚函数: 虚函数 是在基类中使用关键字 virtual 声明的函数,在C++ 语言中虚函数...
    99+
    2024-04-02
  • js中toString()函数与valueOf()函数使用与区别
    目录 一、前言二、toString() 函数三、valueOf()函数小结:四、特殊情况1、引用类型转换为 String 类型2、引用类型转换为 Number 类型&nbs...
    99+
    2024-04-02
  • C语言之sizeof与strlen的使用及区别
    目录1、sizeof与strlen2、short a[100],sizeof(a)返回? 3、下列程序在32位 linux 或 unix 中的结果是什么?4、sizeof与...
    99+
    2024-04-02
  • JavaScript 函数表达式与函数声明的用法及区别
    目录前言什么是函数声明?函数声明的好处什么是函数表达式?函数表达式的好处函数表达式和函数声明之间的区别函数表达式中的作用域如何在表达式和声明之间进行选择何时选择函数声明与函数表达式在...
    99+
    2024-04-02
  • PHP 函数与 Java 函数有什么区别?
    在 php 和 java 中,函数主要区别在于:参数传递:php 按值传递,java 按引用传递。返回值:php 可显式或不返回,java 必需返回与声明匹配的值。访问控制:php 无,...
    99+
    2024-04-24
    php 函数 java 函数
  • PHP 函数与 C++ 函数的区别
    php和c++++函数处理方式的区别主要体现在:函数签名:php无类型安全性,c++具有类型安全性。函数定义:php使用function关键字定义,c++使用数据类型关键字定义。参数传递...
    99+
    2024-04-24
    c++ php
  • PHP 函数与 F# 函数的区别?
    php和f#函数的区别在于:定义:php使用function关键字,f#使用let关键字。类型签名:php可选,f#必须指定。返回类型:php可省略,f#必须明确。参数传递:php按引用...
    99+
    2024-04-25
    php 函数 f# 函数
  • PHP 函数与 Scala 函数的区别?
    php 和 scala 函数有以下关键差异:语法:php 使用 function,scala 使用 def,后者需要类型注释。类型注释:scala 强制指定类型注释,php 则否。默认值...
    99+
    2024-04-25
    php 函数 scala 函数
  • PHP 函数与 Kotlin 函数的区别?
    php 与 kotlin 函数的区别:php 函数返回类型可选、按值传递参数、支持变量数量参数、可声明为静态函数、允许匿名函数;kotlin 函数返回类型明确、参数可按值或引用传递、不支...
    99+
    2024-04-25
    php kotlin
  • PHP 函数与 Rust 函数的区别?
    php 和 rust 函数的主要区别:参数传递:php 按值传递,rust 按引用传递。返回值:php 返回一个值,rust 可使用元组返回多个值或使用 result 枚举返回错误。 ...
    99+
    2024-04-25
    php rust
  • PHP 函数与 Erlang 函数的区别?
    php 函数与 erlang 函数的关键区别:语法:php 使用 c 风格语法,括号中包含参数,而 erlang 使用后缀表示法,参数跟在函数名称之后。返回值:php 函数显式返回一个值...
    99+
    2024-04-25
    php erlang
  • PHP 函数与 Go 函数的区别?
    php和go函数的主要区别包括:类型化(go强制,php可选)、默认值(php可设置,go不可)、可见性(php默认公开,go通过关键字指定)、匿名函数(php支持,go不支持)、返回多...
    99+
    2024-04-25
    go php
  • PHP 函数与 R 函数的区别?
    php和r函数在语法、数据类型、数据结构和函数作用域上有以下差异:1. 语法:php函数遵循c式语法,而r函数使用s式语法。2. 数据类型:php是弱类型语言,而r是强类型语言。3. 数...
    99+
    2024-04-25
    php r 作用域
  • PHP 函数与 Julia 函数的区别?
    php和julia函数的主要区别在于:语法:php函数使用“function”关键字声明,而julia函数使用“function”或“base.function”关键字并遵循不同语法。类...
    99+
    2024-04-25
    php julia
  • PHP 函数与 Python 函数的区别?
    php 与 python 函数的主要区别在于参数传递方式(php 值传递,python 引用传递)和返回值机制(php 通过 return 语句,python 通过最后一行表达式隐式返回...
    99+
    2024-04-25
    python php
  • PHP 函数与 C# 函数的区别?
    php和c#函数的区别:概念:php函数用于特定任务,c#函数用于封装代码。语法:php函数使用function关键字,c#函数使用public static void关键字。返回类型:...
    99+
    2024-04-25
    php 函数 c# 函数 c# 作用域
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作