A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

在这个输入一个字符串,再把一个字符串打印出来的小程序中
import java.util.Scanner;
class LianXi {
    public static void main(String[] args) {
        Scanner t = new Scanner(System.in);
        String x = t.next();
        System.out.println(x);
    }
}
如果我输入 55sad%%#  45fa#
为什么只能打印出55sad%%# 空格后面的就打印不出来了呢?

6 个回复

倒序浏览
String x = t.nextLine();试试
回复 使用道具 举报
你用的是next方法,next()读到空格、tab、回车就会停止记录,nextLine就可以全部输出,nextLine()是读取到回车停止
回复 使用道具 举报
这个问题问的好。
我去查了下Scanner 类 :
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空白匹配。然后可以使用不同的 next 方法将得到的标记转换为不同类型的值。
也就是默认 以空白为规则来切。
所以要打印空格后面的 就调用Scanner中方法修改规则

import java.util.*;
public class LIANXI {
        public static void main(String[]args){
                Scanner in=new Scanner(System.in).useDelimiter("\\n");
                System.out.print(in.next());
                        }

}
回复 使用道具 举报
lupeng 发表于 2015-9-24 23:06
String x = t.nextLine();试试

好的,谢谢哦
回复 使用道具 举报
toypaoa 发表于 2015-9-24 23:10
你用的是next方法,next()读到空格、tab、回车就会停止记录,nextLine就可以全部输出,nextLine()是读取到 ...

谢谢解释哦,非常感谢
回复 使用道具 举报
冰霜之卅 发表于 2015-9-24 23:26
这个问题问的好。
我去查了下Scanner 类 :
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描 ...

谢谢层主,辛苦了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马