new Scanner(System.in).next();完整代码:
import java.text.MessageFormat;
import java.util.Date;
import java.util.Locale;
import java.util.Scanner;public class MessageFormatTest {
private static int num = 10000; public static void main(String[] args) {
MessageFormatTest tmf = new MessageFormatTest();
System.out.print("请输入您的姓名:");
String userName = new Scanner(System.in).next();//next()的作用是啥··
System.out.println(tmf.foramtMsg(userName));
}
//java中的占位符使用方法
public String foramtMsg(String name) {
String msg = "{0},欢迎您!您是第{2}位访客,当前时间是{1}";
Locale locale = Locale.getDefault();
MessageFormat mf = new MessageFormat(msg, locale);
Object[] msgArgs = { name, new Date(), ++num };
return mf.format(msgArgs);
}
}

解决方案 »

  1.   

    next从一行中读取字符串,当遇到特定的标识符:空格或者换行符(/n),获取其当前的字符串(如果你想把空格要当作输入的字符串,那么必须用nextLine()方法,结果输入的字符串到空格就结束)
      

  2.   

    同楼上,next()是scanner的一个方法。作用是获取下一个字符串输入。可以查Java文档。String userName = new Scanner(System.in).next();
    这句相当于
    Scanner sc = new Scanner(System.in);
    String userName = sc.next();
      

  3.   

    API文档的解释
    next
    public String next()查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息。即使以前调用 hasNext() 返回了 true,在等待要扫描的输入时此方法也可能阻塞。 指定者:
    接口 Iterator<String> 中的 next
    返回:
    下一个标记 
    抛出: 
    NoSuchElementException - 如果没有更多标记可用 
    IllegalStateException - 如果此扫描器已关闭
    另请参见:
    Iterator
      

  4.   

    sc.nextInt()获取键盘输入的数字
    sc.next()获取键盘输入的char
    可包装成String
    String s = new String(sc.next());
    或者    s = sc.next()+"";送你另外一个获得键盘输入的方法
    IntputStream is = new IntputStream(system.in);
    BufferedReader br = new BufferedReader(is);
    String s = new String(br.readline).trim();
      

  5.   

    那意思就是如果我用一个循环,一次输入几个名字,用分隔符隔开,可以分次的把所有名字都输出来吧。单一这个语句省略掉那next()方法吧
      

  6.   

    就相当于用匿名对象调用方法呀!通常情况我们是先声明Scanner类的对象后,再用此对象调用其相应的next()或nextInt等方法,而直接new出来的对象调用效果是一样的呀!
    Scanner input;
    input = new Scanner(System.in);input.next();等价于new Scanner(System.in).next();