zoukankan      html  css  js  c++  java
  • JAVA中int、String的类型转换

     

    int -> String

    int i=12345;
    String s="";
    第一种方法:s=i+"";
    第二种方法:s=String.valueOf(i);
    这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

    String -> int

    s="12345";
    int i;
    第一种方法:i=Integer.parseInt(s);
    第二种方法:i=Integer.valueOf(s).intValue();
    这两种方法有什么区别呢?作用是不是一样的呢?是不是在任何下都能互换呢?

    以下是答案:

    第一种方法:s=i+"";   //会产生两个String对象
    第二种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象

    第一种方法:i=Integer.parseInt(s);//直接使用静态方法,不会产生多余的对象,但会抛出异常
    第二种方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相当于 new Integer(Integer.parseInt(s)),也会抛异常,但会多产生一个对象

    --------------------------------------------------------------------
    1如何将字串 String 转换成整数 int?

    A. 有两个方法:

    1). int i = Integer.parseInt([String]); 或
    i = Integer.parseInt([String],[int radix]);

    2). int i = Integer.valueOf(my_str).intValue();

    注: 字串转成 Double, Float, Long 的方法大同小异.
    2 如何将整数 int 转换成字串 String ?
    A. 有叁种方法:

    1.) String s = String.valueOf(i);

    2.) String s = Integer.toString(i);

    3.) String s = "" + i;

    注: Double, Float, Long 转成字串的方法大同小异.



    JAVA数据类型转换 

    这是一个例子,说的是JAVA中数据数型的转换.供大家学习

    package shenmixiaozhu;
    import java.sql.Date;
    public class TypeChange {
       public TypeChange() {
       }
       //change the string type to the int type
       public static   int stringToInt(String intstr)
       {
         Integer integer;
         integer = Integer.valueOf(intstr);
         return integer.intValue();
       }
       //change int type to the string type
       public static String intToString(int value)
       {
         Integer integer = new Integer(value);
         return integer.toString();
       }
       //change the string type to the float type
       public static   float stringToFloat(String floatstr)
       {
         Float floatee;
         floatee = Float.valueOf(floatstr);
         return floatee.floatValue();
       }
       //change the float type to the string type
       public static String floatToString(float value)
       {
         Float floatee = new Float(value);
         return floatee.toString();
       }
       //change the string type to the sqlDate type
       public static java.sql.Date stringToDate(String dateStr)
       {
         return   java.sql.Date.valueOf(dateStr);
       }
       //change the sqlDate type to the string type
       public static String dateToString(java.sql.Date datee)
       {
         return datee.toString();
       }

       public static void main(String[] args)
       {
         java.sql.Date day ;
         day = TypeChange.stringToDate("2003-11-3");
         String strday = TypeChange.dateToString(day);
         System.out.println(strday);
       }
    }
    JAVA中常用数据类型转换函数
    虽然都能在JAVA API中找到,整理一下做个备份。


    最近遇到判断数字的问题,简单总结了一下和大家分享~

     

    //1、正则表达式
     public static boolean isNumeric1(String str){
      Pattern pattern = Pattern.compile("[0-9]*");
      return pattern.matcher(str).matches();
     }
     //2、java自带函数
     public static boolean isNumeric2(String str){
      for (int i = str.length();--i>=0;){
       if (!Character.isDigit(str.charAt(i))){
        return false;
       }
      }
      return true;
     }
     //3、正则表达式
     public static boolean isNumeric(String str){
      if(str.matches("\d *")){
       return true;
      }else{
       return false;
      }
     }
        //4、判断ASCII码值
     public static boolean isNumeric0(String str){
      for(int i=str.length();--i>=0;){
       int chr=str.charAt(i);
       if(chr<48 || chr>57)
        return false;
      }
      return true;
     }
        //5、逐个判断str中的字符是否是0-9
     public static boolean isNumeric3(String str){
      final String number = "0123456789";
      for(int i = 0;i 
                if(number.indexOf(str.charAt(i)) == -1){  
                 return false;  
                
       
      return true;
     }
        //6、捕获NumberFormatException异常
     public static boolean isNumeric00(String str){
      try{
       Integer.parseInt(str);
       return true;
      }catch(NumberFormatException e){
       System.out.println("异常:"" + str + ""不是数字/整数...");
       return false;
      }
     }
     
     ps:不提倡使用方法6,原因如下:
        1、NumberFormatException是用来处理异常的,最好不要用来控制流程的。  
        2、虽然捕捉一次异常很容易,但是创建一次异常会消耗很多的系统资源,因为它要给整个结构作一个快照。 
     看一下JDK源码:
     public static long parseLong(String s,int radix)  
             throws NumberFormatException  
      
        if(s == null){  
           throw   new   NumberFormatException("null");  
        
        if(radix < Character.MIN_RADIX){  
               throw new NumberFormatException("radix " + radix +
               " less than Character.MIN_RADIX");  
        
        if(radix > Character.MAX_RADIX){  
               throw new NumberFormatException("radix " + radix +
               " greater than Character.MAX_RADIX");  
        
        long result = 0;  
        boolean negative = false;
        int i = 0,max = s.length();  
        long limit;  
        long multmin;  
        int digit;
        if(max > 0){  
         if(s.charAt(0) == '-'){  
          negative = true;  
          limit = Long.MIN_VALUE;
          i++;
         }else{
          limit = -Long.MAX_VALUE;
         
         multmin = limit / radix;
         if(i < max){  
          digit = Character.digit(s.charAt(i++),radix);  
          if(digit < 0){
                throw new NumberFormatException(s);  
          }else{  
                result = -digit;
          
         
         while(i < max){  
          // Accumulating negatively avoids surprises near MAX_VALUE
          digit = Character.digit(s.charAt(i++),radix);  
          if(digit < 0){  
           throw new NumberFormatException(s);  
          
          if(result < multmin){  
           throw new NumberFormatException(s);  
          
          result *= radix;  
          if(result < limit + digit){  
           throw new NumberFormatException(s);  
          
          result -= digit;  
        
        }else{  
         throw   new   NumberFormatException(s);  
        
        if(negative){  
         if(i > 1){  
          return result;
         }else{  
          throw new NumberFormatException(s);  
         
        }else{  
         return   -result;  
        
      
     可以看出来jdk里也是一个字符一个字符的判断,如果有一个不是数字就抛出NumberFormatException,所以还不如这个工作由我们自己来做,还省得再抛出一次异常... 


     未完,待大家一起续~~~欢迎大家共享好的方法~~~

    最近遇到判断数字的问题,简单总结了一下和大家分享~

     

    //1、正则表达式
     public static boolean isNumeric1(String str){
      Pattern pattern = Pattern.compile("[0-9]*");
      return pattern.matcher(str).matches();
     }
     //2、java自带函数
     public static boolean isNumeric2(String str){
      for (int i = str.length();--i>=0;){
       if (!Character.isDigit(str.charAt(i))){
        return false;
       }
      }
      return true;
     }
     //3、正则表达式
     public static boolean isNumeric(String str){
      if(str.matches("\d *")){
       return true;
      }else{
       return false;
      }
     }
        //4、判断ASCII码值
     public static boolean isNumeric0(String str){
      for(int i=str.length();--i>=0;){
       int chr=str.charAt(i);
       if(chr<48 || chr>57)
        return false;
      }
      return true;
     }
        //5、逐个判断str中的字符是否是0-9
     public static boolean isNumeric3(String str){
      final String number = "0123456789";
      for(int i = 0;i 
                if(number.indexOf(str.charAt(i)) == -1){  
                 return false;  
                
       
      return true;
     }
        //6、捕获NumberFormatException异常
     public static boolean isNumeric00(String str){
      try{
       Integer.parseInt(str);
       return true;
      }catch(NumberFormatException e){
       System.out.println("异常:"" + str + ""不是数字/整数...");
       return false;
      }
     }
     
     ps:不提倡使用方法6,原因如下:
        1、NumberFormatException是用来处理异常的,最好不要用来控制流程的。  
        2、虽然捕捉一次异常很容易,但是创建一次异常会消耗很多的系统资源,因为它要给整个结构作一个快照。 
     看一下JDK源码:
     public static long parseLong(String s,int radix)  
             throws NumberFormatException  
      
        if(s == null){  
           throw   new   NumberFormatException("null");  
        
        if(radix < Character.MIN_RADIX){  
               throw new NumberFormatException("radix " + radix +
               " less than Character.MIN_RADIX");  
        
        if(radix > Character.MAX_RADIX){  
               throw new NumberFormatException("radix " + radix +
               " greater than Character.MAX_RADIX");  
        
        long result = 0;  
        boolean negative = false;
        int i = 0,max = s.length();  
        long limit;  
        long multmin;  
        int digit;
        if(max > 0){  
         if(s.charAt(0) == '-'){  
          negative = true;  
          limit = Long.MIN_VALUE;
          i++;
         }else{
          limit = -Long.MAX_VALUE;
         
         multmin = limit / radix;
         if(i < max){  
          digit = Character.digit(s.charAt(i++),radix);  
          if(digit < 0){
                throw new NumberFormatException(s);  
          }else{  
                result = -digit;
          
         
         while(i < max){  
          // Accumulating negatively avoids surprises near MAX_VALUE
          digit = Character.digit(s.charAt(i++),radix);  
          if(digit < 0){  
           throw new NumberFormatException(s);  
          
          if(result < multmin){  
           throw new NumberFormatException(s);  
          
          result *= radix;  
          if(result < limit + digit){  
           throw new NumberFormatException(s);  
          
          result -= digit;  
        
        }else{  
         throw   new   NumberFormatException(s);  
        
        if(negative){  
         if(i > 1){  
          return result;
         }else{  
          throw new NumberFormatException(s);  
         
        }else{  
         return   -result;  
        
      
     可以看出来jdk里也是一个字符一个字符的判断,如果有一个不是数字就抛出NumberFormatException,所以还不如这个工作由我们自己来做,还省得再抛出一次异常...


  • 相关阅读:
    Django之F和Q查询
    Django 调试models 输出的SQL语句 定位查看结果
    win10无法开启网络发现怎么办 如何启用网络发现
    关系型数据库和非关系数据库区别
    SSM项目——乐淘商城话述1.0
    微服务简历V1.0
    Spring cloud 项目———酷派手机商城 (话术)1.0
    第四轮面试
    第三轮面试
    02技能点面试题汇总
  • 原文地址:https://www.cnblogs.com/luckForever/p/7254418.html
Copyright © 2011-2022 走看看