javaintstring
⑴ java int加string类型 int加char类型
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
boolean -->Boolean
char --->Character
byte -->Byte
short -->Short
int -->Integer
long -->Long
float -->Float
double -->Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性,这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。
因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。
你可以通过以下方式来声明该类型。
int a,a为int类型的变量
char a,a为char类型的
String对象
1. 首先String不属于8种基本数据类型,String是一个对象。
因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。
2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null;
3. String str=”punkll”;
String str=new String (“punkll”);的区别:
在这里,我们不谈堆,也不谈栈,只先简单引入常量池这个简单的概念。
常量池(constant pool)指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。它包括了关于类、方法、接口等中的常量,也包括字符串常量。
看例1:
String s0=”punkll”;
String s1=”punkll”;
String s2=”punk” + “ll”;
System.out.println( s0==s1 );
System.out.println( s0==s2 );
结果为:
true
true
首先,我们要知结果为道Java会确保一个字符串常量只有一个拷贝。
因为例子中的s0和s1中的”punkll”都是字符串常量,它们在编译期就被确定了,所以s0==s1为true;而”punk”和”ll”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它自己肯定也是字符串常量,所以s2也同样在编译期就被解析为一个字符串常量,所以s2也是常量池中”punkll”的一个引用。
所以我们得出s0==s1==s2;
用new String() 创建的字符串不是常量,不能在编译期就确定,所以new String() 创建的字符串不放入常量池中,它们有自己的地址空间。
看例2:
String s0=”punkll”;
String s1=new String(”punkll”);
String s2=”punk” + new String(“ll”);
System.out.println( s0==s1 );
System.out.println( s0==s2 );
System.out.println( s1==s2 );
结果为:
false
false
false
例2中s0还是常量池中”punkll”的应用,s1因为无法在编译期确定,所以是运行时创建的新对象”punkll”的引用,s2因为有后半部分new String(“ll”)所以也无法在编译期确定,所以也是一个新创建对象”punkll”的应用;明白了这些也就知道为何得出此结果了。
⑵ java怎么把一个int型转换为string类型
JAVA 中int类型转String类型的通常方法,有三种:
1、String.valueOf(int i)
2、Integer.toString(int i)
3、i+""; //i 为 int类型
三种方法效率排序为:
Integer.toString(int i) > String.valueOf(int i) > i+"";
代码测试:
public static void main(String[] args) {
int[] intArr = new int[1000000];
String[] strArr1 = new String[1000000];//为了公平分别定义三个数组
String[] strArr2 = new String[1000000];
String[] strArr3 = new String[1000000];
//赋值
Long t1 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
intArr[i]=i+1;
}
Long t2 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr1[i] = String.valueOf(intArr[i]);
}
Long t3 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr2[i] = Integer.toString(intArr[i]);
}
Long t4 = System.currentTimeMillis();
for(int i=0;i<1000000;i++){
strArr3[i] = intArr[i]+"";
}
Long t5 = System.currentTimeMillis();
System.out.println("t1 = "+t1);
System.out.println("t2 = "+t2);
System.out.println("t3 = "+t3);
System.out.println("t4 = "+t4);
System.out.println("t5 = "+t5);
System.out.println("赋值:"+(t2-t1));
System.out.println("String.valueOf(i):"+(t3-t2));
System.out.println("Integer.toString(i):"+(t4-t3));
System.out.println("i+\"\":"+(t5-t4));
}
我的测试结果为:
t1 = 1298798872078
t2 = 1298798872093
t3 = 1298798872656
t4 = 1298798873000
t5 = 1298798873671
赋值:15
String.valueOf(i):563
Integer.toString(i):344
i+"":671
⑶ 怎么将int数据转换成String数据呢
方法1:
int i=10;
String s=""+i;
这是利用java的toString机制来做的转换,任何类型在和String相加的时候,都会先转换成String。
方法2:
int i=10;
String s=String.valueOf(i);
这是利用String类提供的工厂方法来做的转换。
1、) String s = String.valueOf(i);
2、) String s = Integer.toString(i);
3、) String s = "" + i;
(3)javaintstring扩展阅读
因为String类是一个不可变对象,这就使得String类可以随意的重用,而不会有问题。
事实上在系统内部是有一个String对象的缓冲池,当使用String.valueOf方法的时候,会尽
可能的从这个池中取出符合条件的对象。
需要明确的是String是引用类型,int是基本类型,所以两者的转换并不是基本类型间的转换,这也是该问题提出的意义所在,SUN公司提供了相应的类库供编程人员直接使用。
⑷ Java中String和Int的相互转换
string和int互换:
// String 转int
String str = “123”;
int a = Integer.parseInt(str);
// int 转 String
int b = 1;
String str = String.valueOf(b);
(4)javaintstring扩展阅读:
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
变量是用来存储值的所在处,它们有名字和数据类型。变量的数据类型决定了如何将代表这些值的位存储到计算机的内存中。
在声明变量时也可指定它的数据类型。所有变量都具有数据类型,以决定能够存储哪种数据。
数据类型包括原始类型、多元组、记录单元、代数数据类型、抽象数据类型、参考类型以及函数类型。
⑸ Java中String与Int怎样相互转换
一、将字串 String 转换成整数 int
A. 有2个方法:
1). int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]);
2). int i = Integer.valueOf(my_str).intValue();
PS:
字串转成 Double, Float, Long 的方法大同小异.
第一种方法:i=Integer.parseInt([String]);//直接使用静态方法,不会产生多余的对象,但会抛出异常。
第二种方法:i=Integer.valueOf(my_str).intValue();//Integer.valueOf(my_str) 相当于 new Integer(Integer.parseInt(my_str)),也会抛出异常。
二、将整数 int 转换成字串 String
A. 有3种方法:
1.) String s = String.valueOf(i);
2.) String s = Integer.toString(i);
3.) String s = "" + i;
PS:
Double, Float, Long 转成字串的方法大同小异.
第1种方法:s=String.valueOf(i); //直接使用String类的静态方法,只产生一个对象。
第3种方法:s= "" + i; //会产生两个String对象。
⑹ java如何int转string
java int类型转换String类型方法有:用 int i+""、用String.valueOf(),还可以直接强制类型转换。