1. 创建方法:
String name1="张三"; // 直接赋值方式
String name2=new String("张三"); // new的方式
String name3=name2; // 传递引用
2.比较字符串(==和equal方法)
- “==”比较的是引用,即比较的是栈区的两个变量是否指向同一个堆区区域
- equal方法则比较的是两个string的纯内容
==比较
System.out.println("name1==name2:"+(name1==name2));
结果:
name1==name2:false
equal比较:
System.out.println("name1.equals(name2):"+(name1.equals(name2)));
System.out.println("name1.equals(name3):"+(name1.equals(name3)));
System.out.println("name2.equals(name3):"+(name2.equals(name3)));
结果:
name1.equals(name2):true
name1.equals(name3):true
name2.equals(name3):true
3.不可变性
字符串是不可变的,眼跟前的改变是栈指向了另一个堆
4.字符串的分割
其实这些东西API上都有,不过还是要贴一些代码来小补一下
实际上和Python上的字符串操作差不多,可以参考一下我的另一篇文章Python字符串操作大全中的字符串的分割
基本上差不多
public static void main(String[] args) {
String str="1,2,3,43,56";
// 将字符串切开返回一个String类型的数组
String[] aStrings=str.split(",");
// 创建一个和string数组相同元素个数的int类型数组
int aLength=aStrings.length;
int[] aNum=new int[aLength];
// 将string类型数据转换为int
for(int i=0;i<aStrings.length;i++){
aNum[i]=Integer.parseInt(aStrings[i]);
}
// 数组的遍历输出
for(int a:aNum){
System.out.print(a+" ");
}
// 验证生成的数组
System.out.println();
System.out.println(aNum[1]+aNum[2]);
}
因为上面代码涉及数据类型转换,补一个我的数据类型转换的博客