JAVA Scanner类常用情况

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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,099评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,664评论 0 17
  • 以前小时候知道三毛以为是那个《三毛流浪记》中的三毛,后来随着年龄的增长和知识的增加才知道有个作家叫做三毛,慢慢地...
    慢慢酱阅读 270评论 0 3