JDK文档说
一个可以使用正则表达式来解析基本类型和字符串的简单文本扫描器。
常用API
- hastNext() 如果此扫描器的输入中有另一个标记,则返回 true。
- hastNextLine() 如果在此扫描器的输入中存在另一行,则返回 true。
- next() 查找并返回来自此扫描器的下一个完整标记。
- nextInt() 将输入信息的下一个标记扫描为一个int,其他类型字符同理
- useDelimiter(String pattern) 将此扫描器的分隔模式设置为从指定 String 构造的模式。、
- 具体查API文档
一 逐行扫描文本,并逐行输出
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws FileNotFoundException {
InputStream is = new FileInputStream(new File("E:\\workspace\\eclipsejava\\QQJIAJIA\\src\\com\\example\\qqjiajia\\LoginActivity.java"));
Scanner mScanner = new Scanner(is);
while(mScanner.hasNextLine()){
System.out.println(mScanner.nextLine());
}
}
}
输出
package com.example.qqjiajia;
import android.app.Activity;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.login_activity);
}
}
二 扫描控制台输入的文字
中文不行的
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner mScanner = new Scanner(System.in);
while(true){
String data = mScanner.nextLine();
if(data.equals("end")){
//设定结束的条件
System.out.println("结束");
break;
}
System.out.println(data);
}
}
}
三 分割文本
指定','号作为新的分割符,默认是空格
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner mScanner = new Scanner("iidid iind ooa,nnfnf 222,ddaf 3 3");
mScanner.useDelimiter(",");//指定新的分隔符
while(mScanner.hasNext()){
System.out.println(mScanner.next());
}
}
}
输出
iidid iind ooa
nnfnf 222
ddaf 3 3