int 或者 long 转换成 String 比较简单,直接采用 si = i + ""的方法是可行的。 String转换成 int 或者 long ,如果完全不用String的类方法应该是不可能的。 如果可以使用String.getBytes()方法的话,那么可以先把String转换成byte数组,然后把每一个byte减去48也就是0的ASCII值,这样可以得到对应的int或者long的数字的每一位上的具体数字,然后就是10进制算法了。
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楼的看法 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; } }
但是从String 转移到int 和 long 就存在一定的问题的 如果有字符不能转换, 会产生一个NULL值.可以使用(int)stringValue , (long)stringValue . 这种方式需要对String 进行判断, 如果不合法,可能会导致nullprontException.
String到int:
int a=Integer.parseInt(s);String到int,long:
long l=Long.parseLong(s);
int i = 10;
String str = "";
long lg = 10L;
str = i + "";
str = lg + "";
lg = i ;别的没觉得有什么了 只能强制了
String a = "8";
System.out.println(a.getBytes()[0] - 48);
不是我想这么想的,IBM面试里面问过的啊!
我估计是在考你是不是去看过jdk的源代码叻
再循环遍历,如果遇到字符型数字,把该字符型数字对应的数字放到一个数组b;
如果遇到非字符型数字,可以直接跳出循环了,根本转换不了。
最后把b中的数字取出来,通过*100,*10等等相加得到一个数字呗。
我这是对String转整型的想法,不知道对不对
String转double的也差不多,就是处理下小数点
String转换成 int 或者 long ,如果完全不用String的类方法应该是不可能的。
如果可以使用String.getBytes()方法的话,那么可以先把String转换成byte数组,然后把每一个byte减去48也就是0的ASCII值,这样可以得到对应的int或者long的数字的每一位上的具体数字,然后就是10进制算法了。
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;//强制转换
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;
}
}
提供一个思想,如果n=123,用(char)n将他转换成字符类型的,以此类推,就是用强制装换来实现各个基础类型的转换