zoukankan      html  css  js  c++  java
  • Scanner 的next()输入只接收第一个


    说明:
    next()

    next()一定要读取到有效字符后才可以结束输入,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其去掉,只有在输入有效字符之后,next()方法才将其后输入的空格键、Tab键或Enter键等视为分隔符或结束符。比如,在控制台输入“ gjm gjm ”时,一次next()读入进来的仅仅是"gjm"。它不能得到带空格的字符串的!

    nextLine()

    nextLine()方法的结束符只是Enter键,即nextLine()方法返回的是Enter键之前的所有字符。比如,在控制台输入“ gjm gjm ”时,一次nextLine()读入进来的结果是" gjm gjm "。它是可以得到带空格的字符串的!

    ```javascript
    // An highlighted block
    package com.zt.posts.common.util;

    import lombok.extern.slf4j.Slf4j;

    import java.util.Scanner;
    @Slf4j
    public class ScannerDemo {

    public static void main(String[] args) {


    Scanner sc = new Scanner(System.in);
    String in = sc.next();
    // String in = "Hello World Ni";
    System.out.println(in);
    System.out.println(in.equals("Hello World Ni"));
    log.info(in);
    String [] str = in.split(" ");
    System.out.println(str.length);
    for (String s: str) {
    System.out.print(s+" ");
    }
    String [] str1 = new String[str.length];
    for (int i =0 ; i <str.length; i++) {
    str1[i] = str[str.length-i-1];
    }
    int m = 1;
    /*for (String s: str1) {
    System.out.print(s);
    m=0;
    System.out.print(" "+s);
    }*/
    }
    }

    ```

    解决: 使用nextLine()来读取

  • 相关阅读:
    C++ 派生类对象的构造与析构过程
    C++ lvalue(左值)和rvalue(右值)
    enum class 用法
    gcc 编译选项
    using用法总结
    const用法及与constexpr区别总结
    Lanbda表达式
    CMake 用法总结(转载)
    ElasticSearch学习文档
    Maven学习笔记
  • 原文地址:https://www.cnblogs.com/xwd2366846227/p/12168137.html
Copyright © 2011-2022 走看看