⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wildcard.java

📁 上传文件的Java类
💻 JAVA
字号:
// Decompiled by DJ v2.9.9.61 Copyright 2000 Atanas Neshkov  Date: 2003-6-18 20:17:20
// Home Page : http://members.fortunecity.com/neshkov/dj.html  - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   WildCard.java

package com.jspsmart.file;


public class WildCard
{

    public WildCard(String s)
    {
        card = s.toLowerCase();
    }

    public boolean Match(String s)
    {
        String s1 = Format(s);
        return equalsIgnoreCase(s, s1);
    }

    private boolean startsWith(String s, String s1)
    {
        if(s1.equals(""))
            return true;
        if(s1.length() > s.length())
            return false;
        for(int i = 0; i < s1.length(); i++)
        {
            char c = s1.charAt(i);
            if(c != '?' && c != s.charAt(i))
                return false;
        }

        return true;
    }

    private boolean endsWith(String s, String s1)
    {
        if(s1.equals(""))
            return true;
        if(s1.length() > s.length())
            return false;
        int i = s.length() - 1;
        for(int j = s1.length() - 1; j >= 0; j--)
        {
            char c = s1.charAt(j);
            char c1 = s.charAt(i--);
            if(c != '?' && c != c1)
                return false;
        }

        return true;
    }

    private boolean equalsIgnoreCase(String s, String s1)
    {
        if(s.length() != s1.length())
            return false;
        for(int i = 0; i < s.length(); i++)
        {
            char c = Character.toLowerCase(s.charAt(i));
            char c1 = Character.toLowerCase(s1.charAt(i));
            if(c != c1 && c != '?' && c1 != '?')
                return false;
        }

        return true;
    }

    private String Format(String s)
    {
        int i = card.indexOf('*');
        int j = card.lastIndexOf('*');
        String s4 = s.toLowerCase();
        String s1;
        String s2;
        String s3;
        if(i < 0)
        {
            s1 = "";
            s3 = card.substring(0);
            s2 = "";
        } else
        {
            if(card.equals("*"))
            {
                s1 = "";
                s3 = "";
            } else
            {
                s1 = card.substring(0, i);
                s3 = card.substring(j + 1);
            }
            if(startsWith(s, s1))
                s2 = s4.substring(s1.length());
            else
                s2 = s4;
            if(endsWith(s2, s3))
                s2 = s2.substring(0, s2.length() - s3.length());
        }
        if(i < j && indexOf(s2, card.substring(i + 1, j)) == -1)
            s2 = s2 + s4;
        return s1 + s2 + s3;
    }

    private int indexOf(String s, String s1)
    {
        for(int i = 0; i < s.length(); i++)
            if(startsWith(s.substring(i), s1))
                return i;

        return -1;
    }

    private String card;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -