パッケージ net.utsuro.mask

クラス MaskingUtil


  • public abstract class MaskingUtil
    extends Object
    マスク化処理のユーティリティクラス.
    • コンストラクタの詳細

      • MaskingUtil

        public MaskingUtil()
    • メソッドの詳細

      • isWideChar

        public static boolean isWideChar​(String s)
        全角文字(SJIS)かどうかを返す.
        パラメータ:
        s - 検査したい文字
        戻り値:
        全角文字が含まれている場合true, 半角のみの場合false
      • getSjisByteCount

        public static int getSjisByteCount​(String s)
        バイト数(SJIS換算)を返す.
        パラメータ:
        s - カウントしたい文字
        戻り値:
        SJIS換算バイト数(全角2byte、半角1byte、nullは0byte)
      • splitBySjisBytes

        public static String[] splitBySjisBytes​(String s,
                                                int bytes)
        バイト数(SJIS換算)で文字列を分割する.
        パラメータ:
        s - 分割したい文字
        bytes - 分割したいSJIS換算バイト数
        戻り値:
        SJIS換算バイト数(全角2byte、半角1byte)で分割した文字列配列
      • toUpperHalfKana

        public static String toUpperHalfKana​(String s)
        半角カナ小文字を大文字にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • toUpperWideKana

        public static String toUpperWideKana​(String s)
        全角カナ小文字を大文字にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • toUpperHiragana

        public static String toUpperHiragana​(String s)
        ひらがな小文字を大文字にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • wideKanaToHalfKana

        public static String wideKanaToHalfKana​(String s)
        全角カナを半角にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • halfKanaToWideKana

        public static String halfKanaToWideKana​(String s)
        半角カナを全角にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • halfNumberToWideNumber

        public static String halfNumberToWideNumber​(String s)
        半角数字を全角にして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • hiraganaToWideKana

        public static String hiraganaToWideKana​(String s)
        ひらがなを全角カナにして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • wideKanaToHiragana

        public static String wideKanaToHiragana​(String s)
        全角カナをひらがなにして返す.
        パラメータ:
        s - 対象の文字
        戻り値:
        置換後の文字
      • isInvalidNextLetter

        public static boolean isInvalidNextLetter​(StringBuilder str,
                                                  String nextChar)
        行頭禁止の文字かどうか(かな小文字とかンとか)、拗音(きゃ)以外かどうかを返す.
        パラメータ:
        str - 文字列
        nextChar - 次に来る文字
        戻り値:
        true=禁止文字, false=問題なし
      • isInvalidNextLetter

        public static boolean isInvalidNextLetter​(String str,
                                                  String nextChar)
        行頭禁止の文字かどうか(かな小文字とかンとか)、拗音(きゃ)以外かどうかを返す.
        パラメータ:
        str - 文字列
        nextChar - 次に来る文字
        戻り値:
        true=禁止文字, false=問題なし
      • getRandomString

        public static String getRandomString​(int sjisLen,
                                             MaskingUtil.CharType charType)
        ランダムな文字列を生成します. ※引き渡す文字種が単独の場合に使用します。
        パラメータ:
        sjisLen - 生成する文字列のSJIS換算byte数
        charType - 文字種
        戻り値:
        生成した文字列
      • getRandomString

        public static String getRandomString​(int sjisLen,
                                             MaskingUtil.CharType charType,
                                             Pattern noGenPattern)
        ランダムな文字列を生成します. ※引き渡す文字種が単独の場合に使用します。
        パラメータ:
        sjisLen - 生成する文字列のSJIS換算byte数
        charType - 文字種
        noGenPattern - 生成しない文字パターン(正規表現)
        戻り値:
        生成した文字列
      • getRandomString

        public static String getRandomString​(int sjisLen,
                                             EnumSet<MaskingUtil.CharType> charType)
        ランダムな文字列を生成します. ※引き渡す文字種が単独の場合に使用します。
        パラメータ:
        sjisLen - 生成する文字列のSJIS換算byte数
        charType - 文字種
        戻り値:
        生成した文字列
      • getRandomString

        public static String getRandomString​(int sjisLen,
                                             EnumSet<MaskingUtil.CharType> charType,
                                             Pattern noGenPattern)
        ランダムな文字列を生成します.
        パラメータ:
        sjisLen - 生成する文字列のSJIS換算byte数
        charType - 文字種
        noGenPattern - 生成しない文字パターン(正規表現)
        戻り値:
        生成した文字列
      • getRandomIndex

        public static int getRandomIndex​(int[] weights)
        重み付きランダム抽選を行います. ※重み合計値未計算の場合はこちらを使用。抽選前に計算します。
        パラメータ:
        weights - 抽選対象の重み配列
        戻り値:
        抽選結果のインデックス
      • getRandomIndex

        public static int getRandomIndex​(int[] weights,
                                         int totalWeight)
        重み付きランダム抽選を行います. ※計算済の重み合計値を引き渡す場合に使用。重み合計値に-1を渡すと抽選前に計算します。
        パラメータ:
        weights - 抽選対象の重み配列
        totalWeight - 重み合計値
        戻り値:
        抽選結果のインデックス
      • getRandomHiragana

        public static String getRandomHiragana()
        ランダムにひらがな1文字を生成. ・生成される文字列が不自然になりすぎないように、かな出現率の重みによるランダム生成
        戻り値:
        String 生成したひらがな
      • getRandomHalfKana

        public static String getRandomHalfKana()
        ランダムに半角カナ1文字を生成. ・生成される文字列が不自然になりすぎないように、カナ出現率の重みによるランダム生成
        戻り値:
        String 生成したひらがな
      • getRandomSjisKanji

        public static String getRandomSjisKanji()
        ランダムに漢字1文字を生成. ・SJIS(MS932)の範囲の漢字を生成する ・NEC特殊文字 0x8740~0x879C、外字 0xF040~0xF9FC は生成しない ・NEC選定IBM拡張文字 0xED40~0xEEFC もIBM拡張文字と重複しているため生成しない ・80%は第一水準から抽選されるように調整して生成
        戻り値:
        String 生成した漢字
      • getRandomSjisWideKana

        public static String getRandomSjisWideKana()
        ランダムに全角カナ1文字を生成. ・SJIS(MS932)の範囲のカナを生成する
        戻り値:
        String 生成したカナ
      • getRandomSjisWideUpperAlpha

        public static String getRandomSjisWideUpperAlpha()
        ランダムに全角英大文字1文字を生成. ・SJIS(MS932)の範囲の全角英大文字を生成する
        戻り値:
        String 生成した全角英大文字
      • getRandomSjisWideLowerAlpha

        public static String getRandomSjisWideLowerAlpha()
        ランダムに全角英小文字1文字を生成. ・SJIS(MS932)の範囲の全角英小文字を生成する
        戻り値:
        String 生成した全角英小文字
      • getRandomSjisWideNumber

        public static String getRandomSjisWideNumber()
        ランダムに全角数字1文字を生成. ・SJIS(MS932)の範囲の全角数字を生成する
        戻り値:
        String 生成した全角数字
      • getRandomNumber

        public static int getRandomNumber​(int min,
                                          int max)
        ランダムに整数を生成.
        パラメータ:
        min - 生成する最小値
        max - 生成する最大値
        戻り値:
        生成した整数
      • getRandomNumber

        public static long getRandomNumber​(long min,
                                           long max)
        ランダムに整数を生成.
        パラメータ:
        min - 生成する最小値
        max - 生成する最大値
        戻り値:
        生成した整数
      • getRandomNumber

        public static BigInteger getRandomNumber​(BigInteger min,
                                                 BigInteger max)
        ランダムに整数を生成.
        パラメータ:
        min - 生成する最小値
        max - 生成する最大値
        戻り値:
        生成した整数
      • getRandomNumber

        public static BigDecimal getRandomNumber​(BigDecimal min,
                                                 BigDecimal max)
        ランダムに実数を生成.
        パラメータ:
        min - 生成する最小値
        max - 生成する最大値
        戻り値:
        生成した実数
      • getRandomDate

        public static LocalDateTime getRandomDate​(LocalDateTime min,
                                                  LocalDateTime max)
        ランダムに日付を生成.
        パラメータ:
        min - 生成する最小値
        max - 生成する最大値
        戻り値:
        生成した日付
      • getLuhnDigit

        public static String getLuhnDigit​(String cardNo)
        クレジットカードのチェックディジットをLuhnアルゴリズムで求める.
        パラメータ:
        cardNo - チェックディジット用の最後の1桁込みのカード番号文字列
        戻り値:
        チェックディジット