Рубрики
Без рубрики

Класс сканера на Java

Класс сканера в Java используется для разбора текстовых данных на примитивные и строковые токены, пример класса сканера Java для чтения данных CSV, java.util.Класс сканера.

Автор оригинала: Pankaj Kumar.

Класс сканера в Java ( java.util.Сканер ) был представлен в Java 1.5 как простой текстовый сканер, который может анализировать примитивные типы и строки с помощью регулярных выражений.

Класс сканера на Java

Класс сканера Java можно использовать для разбиения входных данных на токены с любым разделителем регулярных выражений, а также для разбора файлов.

Класс сканера можно использовать для считывания данных файла в примитив. Он также расширяет метод String split() для возврата токенов в виде String, int, long, Integer и других классов-оболочек.

Пример сканера Java

Здесь я использую сканер для чтения файла строка за строкой, разбираю CSV-файл, чтобы легко создавать объекты java и считывать данные с пользовательского ввода.

Здесь я использую сканер для чтения файла строка за строкой, разбираю CSV-файл, чтобы легко создавать объекты java и считывать данные с пользовательского ввода.

package com.journaldev.files;

import java.io.IOException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;

public class JavaFileScanner {

    public static void main(String[] args) throws IOException {
        /**
         *  My Name is Pankaj
         *  My website is journaldev.com
         *  Phone : 1234567890
         */
        String fileName = "/Users/pankaj/source.txt";
        Path path = Paths.get(fileName);
        Scanner scanner = new Scanner(path);
        
        //read file line by line
        scanner.useDelimiter(System.getProperty("line.separator"));
        while(scanner.hasNext()){
            System.out.println("Lines: "+scanner.next());
        }
        scanner.close();
        //read CSV Files and parse it to object array
        /**
         * Pankaj,28,Male
         * Lisa,30,Female
         * Mike,25,Male
         */
        scanner = new Scanner(Paths.get("/Users/pankaj/data.csv"));
        scanner.useDelimiter(System.getProperty("line.separator"));
        while(scanner.hasNext()){
            //parse line to get Emp Object
            Employee emp = parseCSVLine(scanner.next());
            System.out.println(emp.toString());
        }
        scanner.close();
        
        //read from system input
        System.out.println("Read from system input:");
        scanner = new Scanner(System.in);
        System.out.println("Input first word: "+scanner.next());
    }
    
    private static Employee parseCSVLine(String line) {
         Scanner scanner = new Scanner(line);
         scanner.useDelimiter("\\s*,\\s*");
         String name = scanner.next();
         int age = scanner.nextInt();
         String gender = scanner.next();
         JavaFileScanner jfs = new JavaFileScanner();
         return jfs.new Employee(name, age, gender);
    }

    public class Employee{
        private String name;
        private int age;
        private String gender;
        
        public Employee(String n, int a, String gen){
            this.name = n;
            this.age = a;
            this.gender = gen;
        }
        
        @Override
        public String toString(){
            return "Name="+this.name+"::Age="+this.age+"::Gender="+this.gender;
        }
    }

}

Результатом работы вышеуказанной программы является:

Lines: My Name is Pankaj
Lines: My website is journaldev.com
Lines: Phone : 1234567890
Name=Pankaj::Age=28::Gender=Male
Name=Lisa::Age=30::Gender=Female
Name=Mike::Age=25::Gender=Male
Read from system input:
Pankaj Kumar
Input first word: Pankaj

Мы можем использовать класс сканера java для анализа входных данных в маркеры определенного типа данных.

Прочитайте этот пост, чтобы узнать, как читать CSV-файл с помощью сканера .

Ссылка: API Doc