Java Scanner如何获取字符串和带空格的字符串

 更新时间:2023年08月25日 14:18:21   作者:无奈的码农  
这篇文章主要介绍了Java Scanner如何获取字符串和带空格的字符串问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Scanner获取字符串和带空格的字符串

next() 针对不带空格的字符串

 public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("地址:");
        String host = s.next();
        System.out.println("host = " + host);
        System.out.print("端口:");
        String port = s.next();
        System.out.println("port = " + port);
        System.out.print("用户名:");
        String user = s.next();
        System.out.println("user = " + user);
        System.out.print("带空格的用户名:");
        String userSpace = s.next();
        System.out.println("userSpace = " + userSpace);
    }

nextLine()针对带空格的字符串

  public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        System.out.print("地址:");
        String host = s.nextLine();
        System.out.println("host = " + host);
        System.out.print("端口:");
        String port = s.nextLine();
        System.out.println("port = " + port);
        System.out.print("用户名:");
        String user = s.nextLine();
        System.out.println("user = " + user);
        System.out.print("带空格的用户名:");
        String userSpace = s.nextLine();
        System.out.println("userSpace = " + userSpace);
    }

Scanner类——获取用户输入的字符串

注意区分Scanner类中的获取输入字符串的两种方法:

next() 和 nextLine()

next()nextLine()
一定要读取到有效字符后才可以结束输入以Enter回车键作为结束符
有效字符前的空格会自动忽略返回输入回车之前的所有字符
有效字符后的空格会被作为结束符可以获得空白字符串
综上,next()不能得到带有空格的字符串综上,nextLine()可以得到有空格的字符串

使用next()

import java.util.Scanner;
public class Demo1 {
    public static void main(String[] args) {
        //创建一个Scanner类的对象,准备从键盘接收数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        if (scanner.hasNext()) {
            //scanner.hasNext()  判断用户是否还有输入
            String str=scanner.next(); //如果还有输入,通过scanner.next()接收用户的输入
            String str=scanner.next();
            System.out.println("输出内容:"+str);
        }
        scanner.close();//属于I/O流的类,使用结束后及时关闭,否则将一直占用资源
    }
}

示例:

使用nextLine()

import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:");
        if (scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出内容:"+str);
        }
        scanner.close();
    }
}

示例:

常用nextLine()进行字符串的获取,写法如下:

import java.util.Scanner;
public class Demo3 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str=scanner.nextLine();
        //接收用户输入,直至敲下回车结束,将输入保存为字符串
        System.out.println("输出的内容:"+str);
        scanner.close();
    }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java泛型之类型擦除实例详解

    Java泛型之类型擦除实例详解

    Java泛型在使用过程有诸多的问题,如不存在List<String>.class,List<Integer>不能赋值给List<Number>(不可协变),奇怪的ClassCastException等,这篇文章主要给大家介绍了关于Java泛型之类型擦除的相关资料,需要的朋友可以参考下
    2022-01-01
  • java实现zip,gzip,7z,zlib格式的压缩打包

    java实现zip,gzip,7z,zlib格式的压缩打包

    本文是利用Java原生类和apache的commons实现zip,gzip,7z,zlib的压缩打包,如果你要是感兴趣可以进来了解一下。
    2016-10-10
  • 关于spring的自定义缓存注解分析

    关于spring的自定义缓存注解分析

    这篇文章主要介绍了关于spring的自定义缓存注解分析,因为所有的key的失效时间都一样,要想实现不同的key不同的失效时间,就得需要自定义缓存注解,需要的朋友可以参考下
    2023-05-05
  • Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标

    Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标

    这篇文章主要介绍了Tornadofx学习笔记之IconTextFx开源库整合5000+个字体图标的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • TraceIdPatternLogbackLayout日志拦截源码解析

    TraceIdPatternLogbackLayout日志拦截源码解析

    这篇文章主要为大家介绍了TraceIdPatternLogbackLayout日志拦截源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • 关于SpringBoot自定义条件注解与自动配置

    关于SpringBoot自定义条件注解与自动配置

    这篇文章主要介绍了关于SpringBoot自定义条件注解与自动配置,Spring Boot的核心功能就是为整合第三方框架提供自动配置,而本文则带着大家实现了自己的自动配置和Starter,需要的朋友可以参考下
    2023-07-07
  • Java中OAuth2.0第三方授权原理与实战

    Java中OAuth2.0第三方授权原理与实战

    本文主要介绍了Java中OAuth2.0第三方授权原理与实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Java多线程之中断线程(Interrupt)的使用详解

    Java多线程之中断线程(Interrupt)的使用详解

    interrupt字面上是中断的意思,但在Java里Thread.interrupt()方法实际上通过某种方式通知线程,并不会直接中止该线程
    2013-05-05
  • SpringBoot 如何添加容器启动的初始化逻辑的操作方法

    SpringBoot 如何添加容器启动的初始化逻辑的操作方法

    这篇文章主要介绍了SpringBoot 如何添加容器启动的初始化逻辑,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 关于Java错误提示之找不到或无法加载主类的问题及正确处理方法

    关于Java错误提示之找不到或无法加载主类的问题及正确处理方法

    当我们在初学Java的是时候,类文件中是不设定包名(package)的,这种情况下注意classpath,基本上没有问题, 本文主要说明classpath和系统环境变量PATH都没问题的情况下出错原因和正确处理方法,感兴趣的朋友一起看看吧
    2022-01-01

最新评论