如题,怎么实现他们间的转换,不能使用封装类的方法。

解决方案 »

  1.   

    从 int 和 long 转到字符串可以似乎用String)intValue,  (String)longValue等等,
    但是从String 转移到int 和 long 就存在一定的问题的  如果有字符不能转换, 会产生一个NULL值.可以使用(int)stringValue , (long)stringValue . 这种方式需要对String 进行判断, 如果不合法,可能会导致nullprontException.
      

  2.   

    补充
    String到int:
    int a=Integer.parseInt(s);String到int,long:
    long l=Long.parseLong(s);
      

  3.   



    int i = 10;
    String str = "";
    long lg = 10L;
    str = i + "";
    str = lg + "";
    lg = i ;别的没觉得有什么了 只能强制了
      

  4.   


    String a = "8";
    System.out.println(a.getBytes()[0] - 48);
      

  5.   

    int long 转到string 只需要 + 个字符串就行 另外 String是对象类型 那俩个原始类型 不明白你为什么要这么想
      

  6.   

    有毛病。现成的方法不用,你干脆java也别用了
      

  7.   


    不是我想这么想的,IBM面试里面问过的啊!
      

  8.   

    看Integer.parseInt()的实现呗
    我估计是在考你是不是去看过jdk的源代码叻
      

  9.   

    先通过String的toCharArray() 获得一个char数组a
    再循环遍历,如果遇到字符型数字,把该字符型数字对应的数字放到一个数组b;
    如果遇到非字符型数字,可以直接跳出循环了,根本转换不了。
    最后把b中的数字取出来,通过*100,*10等等相加得到一个数字呗。
    我这是对String转整型的想法,不知道对不对
    String转double的也差不多,就是处理下小数点
      

  10.   

    int 或者 long 转换成 String 比较简单,直接采用 si = i + ""的方法是可行的。
    String转换成 int 或者 long ,如果完全不用String的类方法应该是不可能的。
    如果可以使用String.getBytes()方法的话,那么可以先把String转换成byte数组,然后把每一个byte减去48也就是0的ASCII值,这样可以得到对应的int或者long的数字的每一位上的具体数字,然后就是10进制算法了。
      

  11.   


    int i =10;
    long b=20;
    String s="30";
    String str=""+a; //int或者long转换成String
    int a=Integer.parseInt(s); //string转换成Int
    long b=Long.parseLong(s); //String转换成long
    long c=i;//int转换long直接转化
    int d=(int) l;//强制转换
      

  12.   

    同意12楼的看法
    int,long------------>String
    int a = 10;
    String aToStr = a + "";
    long b = 10l;
    String bToStr = b + "";
    这样就完成了int类型和long类型的数据向String类型的转化
    String------------>int,long
    首先要保证String中的是个数字(可以利用正则判断下)
    public class StringToInt {
    public static void main(String [] args){
    String str ="1234";
    byte b [] = str.getBytes();
    int intValue = 0;
    for(int i = 0;i<b.length;i++){
    intValue += ((b[i] -48)*(pow(10,b.length-1-i)));
    }
    System.out.println(intValue);
    }
    public static int pow(int a,int b){
    int z = 1;
    if(b!=0){
    z = a;
    for(int i = 1;i < b;i++){
    z = z*a;
    }
    }
    return z;
    }
    }
      

  13.   

    去查java安装目录中jre中的类包,自己看看parseint这些方法的代码,
    提供一个思想,如果n=123,用(char)n将他转换成字符类型的,以此类推,就是用强制装换来实现各个基础类型的转换