黑马程序员技术交流社区

标题: java基础题,求大神详细指导 [打印本页]

作者: 欧阳风凌    时间: 2015-9-24 23:01
标题: java基础题,求大神详细指导
在这个输入一个字符串,再把一个字符串打印出来的小程序中
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%%# 空格后面的就打印不出来了呢?


作者: 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 类 :
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。

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());
                        }

}

作者: 欧阳风凌    时间: 2015-9-25 23:56
lupeng 发表于 2015-9-24 23:06
String x = t.nextLine();试试

好的,谢谢哦
作者: 欧阳风凌    时间: 2015-9-25 23:59
toypaoa 发表于 2015-9-24 23:10
你用的是next方法,next()读到空格、tab、回车就会停止记录,nextLine就可以全部输出,nextLine()是读取到 ...

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

谢谢层主,辛苦了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2