Java中的Scanner类

Scanner是java中的一个类。util包,用于获取int、double等基本类型和字符串的输入。这是在Java程序中读取输入的最简单方法,但如果您想在时间受限的情况下(如在竞争性编程中)使用输入法,则效率不是很高。

null
  • 要创建Scanner类的对象,我们通常会传递预定义的对象系统。在中,表示标准输入流。如果我们想从文件中读取输入,我们可以传递类File的对象。
  • 要读取特定数据类型XYZ的数值,使用的函数是nextXYZ()。例如,要读取short类型的值,可以使用nextShort()
  • 要读取字符串,我们使用nextLine()。
  • 要读取单个字符,我们使用next()。查拉特(0)。函数的作用是:以字符串形式返回输入中的下一个标记/单词,charAt(0)函数返回该字符串中的第一个字符。

让我们看一下读取各种数据类型数据的代码片段。

// Java program to read data of various types using Scanner class.
import java.util.Scanner;
public class ScannerDemo1
{
public static void main(String[] args)
{
// Declare the object and initialize with
// predefined standard input object
Scanner sc = new Scanner(System.in);
// String input
String name = sc.nextLine();
// Character input
char gender = sc.next().charAt( 0 );
// Numerical data input
// byte, short and float can be read
// using similar-named functions.
int age = sc.nextInt();
long mobileNo = sc.nextLong();
double cgpa = sc.nextDouble();
// Print the values to check if the input was correctly obtained.
System.out.println( "Name: " +name);
System.out.println( "Gender: " +gender);
System.out.println( "Age: " +age);
System.out.println( "Mobile Number: " +mobileNo);
System.out.println( "CGPA: " +cgpa);
}
}


输入:

Geek
F
40
9876543210
9.9

输出:

Name: Geek
Gender: F
Age: 40
Mobile Number: 9876543210
CGPA: 9.9

有时,我们必须检查我们读取的下一个值是否属于某种类型,或者输入是否已结束(遇到EOF标记)。

然后,我们通过hasNextXYZ()函数检查扫描仪的输入是否是我们想要的类型,其中XYZ是我们感兴趣的类型。如果扫描程序具有该类型的标记,则函数返回true,否则返回false。例如,在下面的代码中,我们使用了hasNextInt()。要检查字符串,我们使用hasNextLine()。类似地,为了检查单个字符,我们使用hasNext()。查拉特(0)。

让我们看看代码片段,从控制台读取一些数字并打印它们的平均值。

// Java program to read some values using Scanner
// class and print their mean.
import java.util.Scanner;
public class ScannerDemo2
{
public static void main(String[] args)
{
// Declare an object and initialize with
// predefined standard input object
Scanner sc = new Scanner(System.in);
// Initialize sum and count of input elements
int sum = 0 , count = 0 ;
// Check if an int value is available
while (sc.hasNextInt())
{
// Read an int value
int num = sc.nextInt();
sum += num;
count++;
}
int mean = sum / count;
System.out.println( "Mean: " + mean);
}
}


输入:

101
223
238
892
99
500
728

输出:

Mean: 397

本文由 苏克里特·巴特纳格尔 .如果你喜欢GeekSforgek,并且想贡献自己的力量,你也可以写一篇文章,并将文章邮寄到contribute@geeksforgeeks.org.看到你的文章出现在Geeksforgeks主页上,并帮助其他极客。

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写评论

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享