栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java学习(5)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java学习(5)

Java学习(5) 正则表达式简单了解

定义:

正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符")。正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。

作用:

正则表达式主要用于字符串中为方便字符串操作,很多地方不使用正则表达式也能达到目的,但是可能麻烦很多。

split()方法

split(String regex):可以分割字符串,参数regex称为分割符,可以使用正则表达式来表示

例:

package com.Sentance;

import java.util.*;

public class Sentance {
    private String Sentance1;
    private Map map1 = new HashMap();
    public String getSentance1 () {
        return Sentance1;
    }

    public void setSentance1 (String sentance1) {
        this.Sentance1 = sentance1;
    }
    public void creat() {
        String[] arr = Sentance1.split (" ");
        for(int i = 0; i < arr.length; i++) {
            if (! map1.containsKey (arr[i])) {
                map1.put (arr[i], 1);
            }
            else {
                int num = map1.get (arr[i]);
                map1.put (arr[i], ++num);
            }
        }

    }
    public void statistics() {
        creat ();
        System.out.println ("统计单词出现的个数,结果如下");
        Set set = map1.keySet ();
        for(Iterator i1 = set.iterator (); i1.hasNext (); ) {
            String key = i1.next ();
            Integer value = map1.get (key);
            System.out.println (key + "出现的次数为" + value);

        }
    }
    public void testSentence () {
        Scanner sc = new Scanner (System.in);
        System.out.println ("请输入一句英语,单词用空格隔开");
        Sentance sen = new Sentance ();
        sen.setSentance1 (sc.nextLine ());
        sen.statistics ();
    }

}

在这一个类中的creat()方法就使用类split()方法

如果不使用会出现如下结果


会发现统计的不是单词,是字母

使用之后

Comparator接口与compare()方法

在对TreeMap进行简单应用时,发现TreeMap的一个有参构造方法如下:

public TreeMap(Comparator comparator) {
        this.comparator = comparator;
    }

他的参数类型是Comparator 而Comparator是util包中的一个接口

其中在这个接口中必须要实现的方法是int compare(T o1, T o2);

1.compare()方法的实现可以用于对数组进行排序,compare方法的不同实现对应着不同的排序准则;

2.这里详细解释一下比较规则,如果在一个list集合{1, 0, 0, 2}中选这种比较规则,o1是每次要进行比较的参数,o2是每次新来的参数,举个例子:o1会一直是第一个元素1不会变,每次比完以后,o2都会进行替换,依次替换为:0, 0, 2
这里要返回的是一个int值,如果返回为true,o2会在o1的上面,返回为false,o2会在o1的下面,反正每次比较都是在和o1进行比较

3.排序规则:如果传递的参数是第一个是o1,第二个是o2,比较的时候也是用o1-o2进行比较,那么就是升序;如果比较的时候是用反过来o2-o1进行比较,那么就是降序

实现的实例:

package com.Library;

import java.util.TreeMap;
import java.util.Comparator;

public class Library {
    private TreeMap map_1 = new TreeMap (new MyComparator());
    private class Book {
        private String bookno;
        private String bookName;
        private String auther;
        private int price;

        public String getBookno () {
            return bookno;
        }
        public void setBookno (String bookno) {
            this.bookno = bookno;
        }

        public String getBookName () {
            return bookName;
        }
        public void setBookName (String bookName) {
            this.bookName = bookName;
        }
        public String getAuther () {
            return auther;
        }
        public void setAuther (String auther) {
            this.auther = auther;
        }

        public int getPrice () {
            return price;
        }
        public void setPrice (int price) {
            this.price = price;
        }
        @Override
        public String toString() {
            return "Book[bookno" + bookno + " bookName=" + bookName + " auther=" + auther + " price=" + price + "]";
        }
        public Book() {
        }
        public Book(String bookno, String bookName, String auther, int price) {
        super();
        this.bookno = bookno;
        this.bookName = bookName;
        this.auther = auther;
        this.price = price;
        }

    }
    private class MyComparator implements Comparator {
        @Override
        public int compare(String o1, String o2) {
            if(o1.length () == o2.length ()){
                return o1.compareTo (o2);
            }
                return o1.length () - o2.length ();
        }

    }
    private void creatLibrary() {
        map_1.put ("B45678", new Book ("B14233", "三国演义", "罗贯中", 56));
        map_1.put ("B00678", new Book ("B03642", "水浒传", "施耐庵", 50));
        map_1.put ("D00098", new Book ("D02567", "西游记", "吴承恩", 55));
        map_1.put ("A15678", new Book ("A15753", "红楼梦", "曹雪芹", 60));
        map_1.put ("X01111", new Book ("X01111", "JAVA编程思想", "kobe", 130));
    }
    public void testLibrary() {
        creatLibrary ();
        System.out.println ("LibraryBook" + map_1);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号