Scanner类
来源:互联网 发布:gta5ol骷髅捏脸数据 编辑:程序博客网 时间:2024/05/29 08:59
(1)Scanner的基本使用方法:
常用构造方法:
Scanner(File source) //构造一个新的Scanner,它生成的值是从指定文件扫描的
Scanner(InputStream source) //构造一个新的 Scanner,它生成的值是从指定的
输入流扫描的
Scanner(String source) //构造一个新的Scanner,它生成的值是从指定字符串
扫描的。
先介绍几个重要的成员方法:
int nextInt(); //将输入信息的下一个标记扫描为一个 int
double nextDouble(); //将输入信息的下一个标记扫描为一个double
...
String nextNext(); //查找并返回来自此扫描器的下一个完整标记(字符串)
String nextLine(); //此扫描器执行当前行,并返回跳过的输入信息
...
boolean hasNext(); //如果此扫描器的输入中有另一个标记,则返回true
boolean hasNext(Pattern pattern); //如果下一个完整标记与指定模式匹配,则
返回true
boolean hasNext(String pattern); //如果下一个标记与从指定字符串构造的模式
匹配,则返回true
boolean hasNextInt(); //如果通过使用nextInt()方法,此扫描器输入信息中的下
一个标记可以解释为指定基数中的一个int 值,则返回true。
...
-----
例1:
import java.io.*;
import java.util.*;
public class ScannerSample
{
public static void main(String args[]) throws Exception
{
ScannerSample.scan_stdin();
System.out.println();
ScannerSample.scan_file();
}
public static void scan_stdin() //从标准输入中扫描
{
Scanner sin = new Scanner(System.in);
int a;
long la;
double da;
String str = new String();
a = sin.nextInt();
la = sin.nextLong();
da = sin.nextDouble();
str = sin.next();
System.out.println(a);
System.out.println(la);
System.out.println(da);
System.out.println(str);
}
public static void scan_file() throws Exception //从文件中扫描
{
Scanner fin = new Scanner(new FileInputStream("in.txt"));
int a;
long la;
double da;
String str = new String();
a = fin.nextInt();
la = fin.nextLong();
da = fin.nextDouble();
str = fin.next();
System.out.println(a);
System.out.println(la);
System.out.println(da);
System.out.println(str);
}
}
------
例2:
import java.io.*;
import java.util.*;
class ScannerSample
{
public static void main(String args[]) throws Exception
{
ScannerSample.scan_hasnext();
}
public static void scan_hasnext() throws Exception
{
Scanner fin = new Scanner(new FileInputStream("in.txt"));
double sum=0.0;
while( fin.hasNext() )
{
if( fin.hasNextDouble() )
{
sum += fin.nextDouble();
}
else
{
if( fin.hasNext("end"))
{
break;
}
else
{
System.out.println("文件格式错!");
System.out.println("文件应该是任意多个连续数字后接字符串\"end\"的格式.");
break;
}
}
}
fin.close();
}
}
(2)设置分割符:
Scanner类对象在扫描过程中,默认以空格作为分割符来区分不同的token;我们也可以通过方法useDelimiter(Pattern pattern)来修改分割符。
相关方法:
Scanner useDelimiter(Pattern pattern); //将扫描器的分隔模式设置为指定模式
Scanner useDelimiter(String pattern); //将此扫描器的分隔模式设置为从指定
String构造的模式。
其中useDelimiter(String pattern)中的参数pattern是一个正规表达式。
如:fin.useDelimiter("abc");
fin.useDelimiter("##");
fin.useDelimiter(",,*");
例如:
import java.util.*;
class ScannerSample
{
public static void main(String args[]) throws Exception
{
Scanner sin = new Scanner(System.in);
sin.useDelimiter("aa*");//以正规表达式“aa*”所表示的字符串为分割符.
int a, b, c;
a = sin.nextInt();
b = sin.nextInt();
c = sin.nextInt();
System.out.println(a +"\t"+ b +"\t"+ c);
}
}
例如,在此程序中,
若键盘输入为:123aaa54344a23435aaaa
则输出为:123 54344 23435
常用构造方法:
Scanner(File source) //构造一个新的Scanner,它生成的值是从指定文件扫描的
Scanner(InputStream source) //构造一个新的 Scanner,它生成的值是从指定的
输入流扫描的
Scanner(String source) //构造一个新的Scanner,它生成的值是从指定字符串
扫描的。
先介绍几个重要的成员方法:
int nextInt(); //将输入信息的下一个标记扫描为一个 int
double nextDouble(); //将输入信息的下一个标记扫描为一个double
...
String nextNext(); //查找并返回来自此扫描器的下一个完整标记(字符串)
String nextLine(); //此扫描器执行当前行,并返回跳过的输入信息
...
boolean hasNext(); //如果此扫描器的输入中有另一个标记,则返回true
boolean hasNext(Pattern pattern); //如果下一个完整标记与指定模式匹配,则
返回true
boolean hasNext(String pattern); //如果下一个标记与从指定字符串构造的模式
匹配,则返回true
boolean hasNextInt(); //如果通过使用nextInt()方法,此扫描器输入信息中的下
一个标记可以解释为指定基数中的一个int 值,则返回true。
...
-----
例1:
import java.io.*;
import java.util.*;
public class ScannerSample
{
public static void main(String args[]) throws Exception
{
ScannerSample.scan_stdin();
System.out.println();
ScannerSample.scan_file();
}
public static void scan_stdin() //从标准输入中扫描
{
Scanner sin = new Scanner(System.in);
int a;
long la;
double da;
String str = new String();
a = sin.nextInt();
la = sin.nextLong();
da = sin.nextDouble();
str = sin.next();
System.out.println(a);
System.out.println(la);
System.out.println(da);
System.out.println(str);
}
public static void scan_file() throws Exception //从文件中扫描
{
Scanner fin = new Scanner(new FileInputStream("in.txt"));
int a;
long la;
double da;
String str = new String();
a = fin.nextInt();
la = fin.nextLong();
da = fin.nextDouble();
str = fin.next();
System.out.println(a);
System.out.println(la);
System.out.println(da);
System.out.println(str);
}
}
------
例2:
import java.io.*;
import java.util.*;
class ScannerSample
{
public static void main(String args[]) throws Exception
{
ScannerSample.scan_hasnext();
}
public static void scan_hasnext() throws Exception
{
Scanner fin = new Scanner(new FileInputStream("in.txt"));
double sum=0.0;
while( fin.hasNext() )
{
if( fin.hasNextDouble() )
{
sum += fin.nextDouble();
}
else
{
if( fin.hasNext("end"))
{
break;
}
else
{
System.out.println("文件格式错!");
System.out.println("文件应该是任意多个连续数字后接字符串\"end\"的格式.");
break;
}
}
}
fin.close();
}
}
(2)设置分割符:
Scanner类对象在扫描过程中,默认以空格作为分割符来区分不同的token;我们也可以通过方法useDelimiter(Pattern pattern)来修改分割符。
相关方法:
Scanner useDelimiter(Pattern pattern); //将扫描器的分隔模式设置为指定模式
Scanner useDelimiter(String pattern); //将此扫描器的分隔模式设置为从指定
String构造的模式。
其中useDelimiter(String pattern)中的参数pattern是一个正规表达式。
如:fin.useDelimiter("abc");
fin.useDelimiter("##");
fin.useDelimiter(",,*");
例如:
import java.util.*;
class ScannerSample
{
public static void main(String args[]) throws Exception
{
Scanner sin = new Scanner(System.in);
sin.useDelimiter("aa*");//以正规表达式“aa*”所表示的字符串为分割符.
int a, b, c;
a = sin.nextInt();
b = sin.nextInt();
c = sin.nextInt();
System.out.println(a +"\t"+ b +"\t"+ c);
}
}
例如,在此程序中,
若键盘输入为:123aaa54344a23435aaaa
则输出为:123 54344 23435
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- Scanner 类
- Scanner类
- Scanner类
- Scanner类
- Scanner类
- scanner:java的scanner类详解
- 常见类---Scanner类
- Scanner类Random类
- java.util.scanner类
- Scanner 类 useDelimiter("")用法
- java.util.Scanner类
- java.util.Scanner类
- Scanner类的应用
- spring注入方式之set方式注入
- 不用额外变量实现c语言strlen函数
- LSM-Tree (BigTable 的理论模型)
- 关于thinkphp视图详解
- uva 10341 Solve It(二分搜索)
- Scanner类
- Cocos2d-x 多分辨率支持
- 安装后打开eclipse,提示出错
- Cocos2d-x android项目移植——各类bug及常见问题解决方案全集
- java中的==和equals区别
- centOS 6.4 (64bit) 安装 Python 2.7.5
- Linux man 命令解读
- UML 用例视图笔记
- Jquery 文本框输入内容,自动匹配select 下拉框内容