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