Java Scanner next()方法与示例

扫描仪类next()方法

语法:

    public String next();
    public String next(Pattern patt);
    public String next(String patt);
  • next()方法在java.util包中可用。

  • next()方法用于搜索并从此扫描器中获取下一个完整令牌,令牌之前和之后是符合模式的输入。

  • next(Pattern patt)方法用于在遇到给定Pattern(patt)时检索下一个标记。

  • next(String patt)方法用于在下一个标记符合由给定String(patt)形成的模式时检索下一个标记。

  • 这些方法在将令牌表示为模式时可能会引发异常。

    • NoSuchElementException:如果不再存在令牌,则可能引发此异常。

    • IllegalStateException:如果未打开此扫描器,则可能引发此异常。

  • 这些是非静态方法,可通过类对象访问;如果尝试使用类名称访问这些方法,则会收到错误消息。

参数:

  • 在第一种情况下,next()

    • 它不接受任何参数。

  • 在第一种情况下,next(Pattern patt)

    • 模式patt –表示要读取的模式(patt)。

  • 在第二种情况下,next(String patt)

    • 字符串patt –表示用于定义要读取的图案(图案)的字符串。

返回值:

在所有情况下,该方法的返回类型都是String,它将检索下一个标记

范例1:

//Java程序是演示示例 
//的next()扫描仪的方法

import java.util.*;
import java.util.regex.*;

public class Next {
 public static void main(String[] args) {
  String str = "Java Programming! 3 * 8= 24";

  //实例化扫描仪
  Scanner sc = new Scanner(str);

  //通过使用next()方法是
  //显示下一个完整的 
  //令牌
  String next = sc.next();
  System.out.println("sc.next(): " + next);

  //扫描仪关闭
  sc.close();
 }
}

输出结果

sc.next(): Java

范例2:

import java.util.*;
import java.util.regex.*;

public class Next {
 public static void main(String[] args) {
  String str = "Java Programming! 3 * 8= 24";

  //实例化扫描仪
  Scanner sc = new Scanner(str);
  //通过使用net(Pattern)方法是
  //在遇到下一个令牌时返回
  //给定的模式
  String next_p = sc.next(Pattern.compile("J..a"));
  System.out.println("sc.next(Pattern.compile(J..a)): " + next_p);

  //扫描仪关闭
  sc.close();
 }
}

输出结果

sc.next(Pattern.compile(J..a)): Java

范例3:

import java.util.*;
import java.util.regex.*;

public class Next {
 public static void main(String[] args) {
  String str = "Java Programming! 3 * 8= 24";

  //实例化扫描仪
  Scanner sc = new Scanner(str);

  //通过使用net(String)方法是
  //在遇到下一个令牌时返回
  //给定的模式 formed from the given
  //字符串
  String next_s = sc.next("Java");
  System.out.println("sc.next(Java)): " + next_s);

  //扫描仪关闭
  sc.close();
 }
}

输出结果

sc.next(Java)): Java