Java-随记-String 转 long

Posted 木子旭

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java-随记-String 转 long相关的知识,希望对你有一定的参考价值。

1.转化

  long l = Long.parseLong([String]);

  相当于 long l = Long.parseLong([String],10); 


  long l = Long.valueOf("123").longValue();

2.Long.ValueOf("String")与Long.parseLong("String")的区别

  Long.ValueOf("String")返回Long包装类型

  Long.parseLong("String")返回long基本数据类型

3.判断字符串是否是数值类型

  3.1 java 原声Character.isDigit方法使用

    /**
     * JAVA自带的函数,缺点不能小数,负数,科学计数等含有非数字的
     * @param str
     * @return
     */
    public static boolean isNumeric(String str) {
        for (int i = 0; i < str.length(); i++) {
            System.out.println(str.charAt(i));
            if (!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }

  3.2 使用三方包org.apache.commons.lang

用法

     * StringUtils.isNumeric(null)   = false
     * StringUtils.isNumeric("")     = true
     * StringUtils.isNumeric("  ")   = false
     * StringUtils.isNumeric("123")  = true
     * StringUtils.isNumeric("12 3") = false
     * StringUtils.isNumeric("ab2c") = false
     * StringUtils.isNumeric("12-3") = false
     * StringUtils.isNumeric("12.3") = false

也不太理想

  3.3 正则表达式

    public static boolean isNumeric(String str) {
        // 该正则表达式可以匹配所有的数字 包括负数
        Pattern pattern = Pattern.compile("-?[0-9]+\\.?[0-9]*");
        String bigStr;
        try {
            bigStr = new BigDecimal(str).toString();
        } catch (Exception e) {
            return false;// 异常 说明包含非数字。
        }

        Matcher isNum = pattern.matcher(bigStr); // matcher是全匹配
        if (!isNum.matches()) {
            return false;
        }
        return true;
    }

 

以上是关于Java-随记-String 转 long的主要内容,如果未能解决你的问题,请参考以下文章

java String转Long两种方法区别

JAVA怎么把long型转为String的

Java 日期时间 Date类型,long类型,String类型表现形式的转换 (转)

java 中Long[ ] 怎样转换为String[ ]

将java怎么将long类型的时间转换成年月日的形式

Java笔记-Integer或Long转String时补0(补零)