Java字符串

导读:本篇文章讲解 Java字符串,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

创建String对象的方法

String s1="ican";	//创建-个字符串对象ican ,名为s1
String s2=new String();	//创建-个空字符串对象,名为s2
String s3=new String("ican");	//创建一个字符串对象ican,名为s3

String的常用方法

Java字符串

字符串与byte数组间的相互转换

	//字符串和byte数组之间的相互转换
    //定义一个字符串
    String str= new String("JAVA 编程 基础");
    //将字符串转换为byte数组,并打印输出
    byte[] arrs= str.getBytes();
    for(int i=0;i<arrs.length;i++){
    System.out.print(arrs[i]+" ");
   }
    //将byte数组转换为字符串
    String str1 = new String(arrs);
    System.out.println(str1);

Java字符串

 

等于运算符与equals方法的区别

//==和equals方法的区别
//定义三个字符串,内容都是ican
String str1 = "ican";
String str2= "ican";
String str3=new String("ican");
System.outprintln("str1和str2的内容相同?"+(strl.equals(str2)));  //true
System.outprintIn("str1和str3的内容相同?"+(tr1.equals(t3))); //true
System.outprintIn("str1和str2的地址相同? "+(str1==str2))); //true
System.outprintln("str1和Istr3的地址相同?"+(str1 equals(str3))); //false

        在内存空间里面,有一个栈是用来存放类的引用的,常量池里边可以存放字符串常量,还有一个地方是堆,堆里面是用来存放用new创建的这个字符串对象的。

        当我们有一条语句String str1 = "imooc"就会在栈当中生成一个str1的引用,同时在常量池当中生成一个”imooc”,并且str1这个引用去指向常量池当中的”imooc”,那么当我们有另外一条语句String str2 = "imooc"同样也是在栈里生成一个str2,然后在常量池当中已经有一个”imooc”存在,那这时候当我们发现常量池当中已经有一个”imooc”这样的一个字符串的时候,第二条语句就不会在常量池当中再生成一个字符串,而是直接把str2的引用指向了已经存在的这个”imooc”,这也就是为什么str1和str2的地址是相同的,因为它们指向的其实都是常量池当中的同一个位置。

        这时如果有第三条语句String str3=new String("imooc");这时候会在栈当中生成一个str3的引用,然后在堆当中创建一个对象,并且把str3指向所创建的这个对象,如果这时候再有第四条语句String str4=new String("imooc");,那这时候会在堆当中创建一个新的对象,然后把str4的引用指向这个对象,str3和str4创建的语句看样子是一样的,其实在内存当中是两个完全不同的内存空间。

Java字符串

字符串的不可变性

//String的不可变性
//String对象一旦被创建 ,则不能修改,是不可变的
//所谓的修改其实是创建了新的对象,所指向的内存空间不变
String s1= "imooc";
s1= "hello,"+sl;
//s1不再指向imeoc所在的内存空间,而是指向了"hello imooc"
System.out.println("s1="+s1);

Java字符串

String s1= "imooc";
String s2= "hello,"+sI; 
//s1不再指向imooc所在的内存空间,而是指向了"hello,imoos"
System.outprintln("s1="+s1);
System.outprintln("s2="+s2);

Java字符串

String s3=new String("hello,imooc!");
System.out.println(子串:" + s3.substring(0,5));
System.out.println("s3="+s3);

Java字符串

StringBuilder

String和StringBuilder的区别 :String具有不可变性,而StringBuilder不具备。当频繁操作字符串时,建议使用StringBuilder。

常用方法:

//定义一个字符串你好
StringBuilder str = new StringBuilder("你好");
//在"你好"后面添加内容,将字符串变成“你好, imooc!"
str.append(",");
strappend("imooc!");
System.outprintln("str="+str);

        原来在内存当中是没有生成新的对象的,也没有新的字符串常量,而是在原来的这个对象上进行的更改。

Java字符串

//将字符串变成”你好iMOOC! "
//两种方式:
//1.使用delete方法删除mooc ,然后在插入MOOC
System.out.println("替换后:"+str.delete(4,8).insert(4,"MOOC"));
//2、使用replace方法直接替换
System.out.println("替换后: "+str.replace(4,8,"MOOC"));
//在字符串"你好,iMOOC"中取出“你好"并输出
System.out.println(str.substring(0,2));

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99485.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!