String类

String

1、创建字符串

 方式一 
 String str = "abcde";//直接赋值
 方式二 
 String str2 = new String("abcde");//调用构造方法
 方式三
  char[] array = {'a', 'b', 'c'}; String str3 = new String(array); 

2观察下列代码输出理解字符串内存布局,String 使用 == 比较并不是在比较字符串内容, 而是比较两个引用是否是指向同一个对象

        String s1="abcde";
        String s2=new String("abcde");
        System.out.println(s1==s2);//false

在这里插入图片描述

		String s1="abcde";
        String s3="abcde";
        System.out.println(s1==s3);//true

在这里插入图片描述

        String s1="abcde";
        String s4="abc"+new String("def");
        System.out.println(s1==s4);//false

在这里插入图片描述

		String s1="abcde";
        char[] arr={'a','b','c','d','e'};
        String s3=new String(arr);
        System.out.println(s1==s3);//false

在这里插入图片描述

 		String s1="abcde";
        String s2="abc"+"de";
        String s6 = "abc";
        String s7 = "def";
        String s8 = s6+s7;
        System.out.println(s1==s2);//true
        System.out.println(s1==s8);//false

在这里插入图片描述

        String s1="abcde";
        String s2=new String("abcde").intern();
        System.out.println(s1==s2);

在这里插入图片描述

3、下面的代码生成了几个对象?

		int a = 360;
        String str = "abc"+"def" + a;
        System.out.println(str);
       

==生成了一个对象=="abc"+"def"在编译器已经确定了,而a是一个变量(不是对象)。
       String s="hello";
        s=s+"world";
        s+="!!!";
        System.out.println(s);
        生成了五个对象

在这里插入图片描述

4、String的常见操作
1、字符串比较内容是否相同:equals()方法

String str1 = "hello" ; 
 String str2 = "Hello" ; 
 System.out.println(str1.equals(str2)); // false 
 System.out.println(str1.equalsIgnoreCase(str2)); // true,忽略大小写 

2、字符串比大小compareTo()

System.out.println("A".compareTo("a")); // -32 
System.out.println("a".compareTo("A")); // 32 
System.out.println("A".compareTo("A")); // 0 
System.out.println("AB".compareTo("AC")); // -1 
System.out.println("刘".compareTo("杨")); 
compareTo()是一个可以区分大小关系的方法,是String方法里是一个非常重要的方法。 
先比较第一 个字符的大小(根据 unicode 的值来判定), 如果不分胜负, 就依次比较后面的内容

3、 字符串查找contains()

String str = "helloworld" ; 
 System.out.println(str.contains("world")); // true 

在这里插入图片描述在这里插入图片描述5、字符串替换

String str = "helloworld" ;  
System.out.println(str.replace("l", "_")); 
System.out.println(str.replaceAll("l", "_")); 
System.out.println(str.replaceFirst("l", "_")); 
//注意替换会生成一个新字符串

在这里插入图片描述6、字符串拆分

String str = "hello world hello bit" ;
  String[] result = str.split(" ") ; 
  // 按照空格拆分 
  for(String s: result) {     
  System.out.println(s); 
  }
//字符串部分拆分
String str = "hello world hello bit" ; 
 String[] result = str.split(" ",2) ; 
  for(String s: result) {    
   System.out.println(s); 
   拆分成两份

在这里插入图片描述

  1. 字符"|","*","+“都得加上转义字符,前面加上”".
  2. 而如果是"",那么就得写成"\".
  3. 如果一个字符串中有多个分隔符,可以用"|"作为连字符.
String str = "192.168.1.1" ;  
String[] result = str.split("\\.") ; 
 for(String s: result) {     
 System.out.println(s);
  }

7、字符串截取substring

String str = "helloworld" ;  
System.out.println(str.substring(5)); 
System.out.println(str.substring(0, 5));
//索引从零开始,左闭右开

8、trim 会去掉字符串开头和结尾的空白字符(空格, 换行, 制表符等)、
大小写转换:.toUpperCase()||| toLowerCase()
9、String是不可变的,任何的字符串常量都是String对象,而且String的常量一旦声明不可改变,如果改变对象内容,改变的是其引用的指 向而已。

StringBuffer 和 StringBuilder

相对于String他是可修改的和可扩充的,即在原字符串上修改
StringBuffer 是线程安全的
StringBuilder 速度快,但线程不安全

		String str = "abc";
        StringBuffer sb = new StringBuffer();
        sb.append(str);
        System.out.println(sb.insert(3, "d"));
        StringBuilder s=new StringBuilder("ght");
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值