recherche

Maison  >  Questions et réponses  >  le corps du texte

java - 判断字符串内容的类型

迷茫迷茫2841 Il y a quelques jours740

répondre à tous(2)je répondrai

  • PHPz

    PHPz2017-04-18 10:06:51

    Actuellement, tout ce à quoi je pense, c'est un jugement régulier

    répondre
    0
  • 阿神

    阿神2017-04-18 10:06:51

    Supposons que le type de données soit limité à 8 types de base + String.
    Les types numériques sont divisés en nombres entiers et en nombres à virgule flottante ;
    Les valeurs booléennes et les types de caractères sont plus faciles à juger
    Expressions régulières pour les entiers : ^-?[1-9]d*$
    Expressions régulières pour les flottants ; nombres de points : ^[-]?[1-9]d*.d*|-0.d*[1-9]d*$
    La valeur 0 doit être jugée séparément. C'est relativement simple, écrivez-la vous-même.

    public static final String CHAR_PATTERN = "[^0-9]";
    public static final String INT_PATTERN = "^-?[1-9]\d*$";
    public static final String DOUBLE_PATTERN = "^[-]?[1-9]\d*\.\d*|-0\.\d*[1-9]\d*$";
    
    public static Object convert(String item) {
        // 忽略所有空字符串或全是空格的字符串
        if (!StringUtils.hasText(item)) {
            return null;
        }
        item = item.trim();
        if ("true".equalsIgnoreCase(item) || "false".equalsIgnoreCase(item)) {
            return Boolean.valueOf(item);
        }
        if (item.matches(CHAR_PATTERN)) {
            return Character.toString(item);
        }
        if (item.matches(INT_PATTERN)) {
            return Integer.valueOf(item);
        }
        if (item.matches(DOUBLE_PATTERN)) {
            return Double.valueOf(item);
        }
        return item;
    }

    Le code ci-dessus est tapé à la main et peut être mal écrit.

    répondre
    0
  • Annulerrépondre