public static HyperlinkType judgeLinkType(final String linkAddress) {

        ArgUtils.notEmpty(linkAddress, "linkAddress");

        if(linkAddress.matches(".*![\\p{Alnum}]+")) {
            // !A1のアドレスを含むかどうか
            return HyperlinkType.DOCUMENT;

        } else if(linkAddress.matches("[\\p{Alpha}]+[0-9]+")) {
            // A1の通常のアドレスの形式
            return HyperlinkType.DOCUMENT;

        } else if(linkAddress.matches(".+@.+")) {
            // @を含むかどうか
            return HyperlinkType.EMAIL;

        } else if(linkAddress.matches("[\\p{Alpha}]+://.+")) {
            // プロトコル付きかどうか
            return HyperlinkType.URL;

        } else if(linkAddress.matches(".+\\.[\\p{Alnum}]+")) {
            // 拡張子付きかどうか
            return HyperlinkType.FILE;

        } else {
            return HyperlinkType.NONE;
        }

    }
public static HyperlinkType judgeLinkType ( final String linkAddress ) { ArgUtils . notEmpty ( linkAddress , "linkAddress" ) ; if ( linkAddress . matches ( ".*![\\p{Alnum}]+" ) ) { return HyperlinkType . DOCUMENT ; } else if ( linkAddress . matches ( "[\\p{Alpha}]+[0-9]+" ) ) { return HyperlinkType . DOCUMENT ; } else if ( linkAddress . matches ( ".+@.+" ) ) { return HyperlinkType . EMAIL ; } else if ( linkAddress . matches ( "[\\p{Alpha}]+://.+" ) ) { return HyperlinkType . URL ; } else if ( linkAddress . matches ( ".+\\.[\\p{Alnum}]+" ) ) { return HyperlinkType . FILE ; } else { return HyperlinkType . NONE ; } }
リンクのアドレスを判定する。
@param linkAddress リンクのアドレス（URL）
@return 不明な場合は{@link HyperlinkType#NONE}を返す。
@throws IllegalArgumentException linkAddress が空文字の場合。