使用Java的方法中将Scanner对象作为参数传递的语法是什么?
直到Java1.5从用户程序员那里读取数据之前,都依赖于字符流类和字节流类。
从Java1.5开始引入Scanner类。此类接受File,InputStream,Path和String对象,使用正则表达式逐个令牌读取所有原始数据类型和String(从给定的源)令牌。
默认情况下,空格被视为定界符(将数据分成令牌)。
读取用来自源的各种数据类型nextXXX()
由该类即提供的方法,nextInt()
,nextShort()
,nextFloat()
,nextLong()
,nextBigDecimal()
,nextBigInteger()
,nextLong()
,nextShort()
,nextDouble()
,nextByte()
,nextFloat()
,next()
。
将Scanner对象作为参数传递
您可以将Scanner对象作为参数传递给方法。
示例
以下Java程序演示了如何将Scanner对象传递给方法。该对象读取文件的内容。
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Scanner; public class ScannerExample { public String sampleMethod(Scanner sc){ StringBuffer sb = new StringBuffer(); while(sc.hasNext()) { sb.append(sc.nextLine()); } return sb.toString(); } public static void main(String args[]) throws IOException { //实例化inputStream类 InputStream stream = new FileInputStream("D:\\sample.txt"); //实例化Scanner类 Scanner sc = new Scanner(stream); ScannerExample obj = new ScannerExample(); //调用方法 String result = obj.sampleMethod(sc); System.out.println("文件内容:"); System.out.println(result); } }
输出结果
文件内容: nhooo.com originated from the idea that there exists a class of readers who respond better to on-line content and prefer to learn new skills at their own pace from the comforts of their drawing rooms.
示例
在下面的示例中,我们创建一个具有标准输入(System.in)作为源的Scanner对象,并将其作为参数传递给方法。
import java.io.IOException; import java.util.Scanner; public class ScannerExample { public void sampleMethod(Scanner sc){ StringBuffer sb = new StringBuffer(); System.out.println("Enter your name: "); String name = sc.next(); System.out.println("Enter your age: "); String age = sc.next(); System.out.println("Hello "+name+" You are "+age+" years old"); } public static void main(String args[]) throws IOException { //实例化Scanner类 Scanner sc = new Scanner(System.in); ScannerExample obj = new ScannerExample(); //调用方法 obj.sampleMethod(sc); } }
输出结果
Enter your name: Krishna Enter your age: 25 Hello Krishna You are 25 years old