package com.demo;
import java.io.*;
import java.util.ArrayList;
/**
 * 正向最大匹配算法的分词算法.
 */
public class MM {
    String Maxlen;
    ArrayList<String> dict;
    String s;
    String subs;
    String result = "";
    public MM() {
        dict = new ArrayList<String>();
        dict.add("山西");
        dict.add("大同");
        dict.add("云冈");
        dict.add("校西街");
        dict.add("小区");
    }
    //最大正向匹配算法
    public String MMwork(int len, String sen) {
        while (sen.length() != 1) {
            while (true) {
                if (len < sen.length()) {
                    s = sen.substring(0, len);
                } else {
                    len = sen.length();
                    s = sen.substring(0, len);
                }
                if (dict.contains(s) || len == 1) {
                    result = result + s + "/";
                    break;
                } else {
                    len = len - 1;
                }
            }
            sen = sen.substring(len);
            len = 3;
        }
        result = result + sen + "/";
        return result;
    }
    public static void main(String[] args) {
        MM mm = new MM();
        System.out.println(mm.MMwork(3,"山西省大同市云冈区校西街201号"));
    }
}

参考链接:https://blog.csdn.net/yin5627/article/details/78231914