String类

String类

1.概念:

由多个字符组成的一串数据,值一旦创建就不改变,一旦改变就会创建一个新的对象;

2.String对象的创建方法

● 第一种:

String s = “abc”;

先在栈中创建一个对String类的对象引用变量s,然后去字符串常量池中查找

有没有"abc", 如果没有则在常量池中添加”abc”, s引用变量指向常量池中

的”abc”,如果常量池中有,则直接指向改地址即可,不用重新创建.

● 第二种:

一概在堆中创建新对象,值存储在堆内存的对象中。

String s = new String(“abc”);

在这里插入图片描述

3.String所提供的各种方法
1.获取方法
package stringDemo2;

public class gain {
    public static void main(String[] args) {
        String str = "abcdefg";
        System.out.println(str.length());//返回字符串长度(return value.length;)
        System.out.println(str.charAt(1));//输入index索引返回该索引位置的字符(char);
        System.out.println(str.indexOf("c"));//返回该字符的索引,(从前往后找,只返回首次找到的字符索引);
        System.out.println(str.indexOf("c", 4));//返回该字符的索引,(从指定位置往后找,只返回首次找到的字符索引);
        System.out.println(str.lastIndexOf("c"));//从后往前找,同上;
    }
}
  • 输出

  • 7
    b
    2
    -1
    2
    
2.截取方法
package stringDemo2;

public class cut out {
    public static void main(String[] args) {
        String str="abcdefg";
        System.out.println(str.substring(3));//返回该索引往后的字串
        System.out.println(str.substring(2,6));//返回从start到end的字符(start包含end不包含);
    }

}
  • 输出

  • defg
    cdef
    
3.转换方法
package stringDemo2;
import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class zhuanhuan {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String str="中国";
        byte b[]=str.getBytes("gbk");//将字符串转化为指定编码,并将字符串储存于字节数组(注:解码的编码要与译码时相同)
        System.out.println(Arrays.toString(b));
        String s=new String(b,"gbk");//解码过程
        System.out.println(s);
        String s1="abcd";
        char[] chars=s1.toCharArray();//将字符串转化为字符并储存在字符数组中;
        System.out.println(Arrays.toString(chars));//以字符数组形式输出;
        String s2=new String(chars);//还原
        String s3=String.valueOf(chars);//还原
        System.out.println(s2);
        System.out.println(s3);
    }
}

  • 输出

  • [-42, -48, -71, -6]
    中国
    [a, b, c, d]
    abcd
    abcd
    
    
4.判断方法
package stringDemo2;

public class  judge{
    public static void main(String[] args) {
        String str1="abcdefg";
        String str2="abcdefg";
        String str3="AbcdefG";
        String str="abc";
        String s= "";
//        String s1=null;
        System.out.println(str1.equals(str2));//比较字符串内容是否相同(返回类型:boolean);
        System.out.println(str1.equalsIgnoreCase(str3));//比较字符串内容是否相同(不区分大小写)(返回类型:boolean);
        System.out.println(str1.contains(str));//是否包含子串(连续)(返回类型:boolean);
        System.out.println(s.isEmpty());//判断字符串是否为空串(返回类型:boolean);NULL并非空串;
        System.out.println(str1.startsWith("abc"));//判断字符串是否以该字串开头;(返回类型:boolean)
        System.out.println(str1.endsWith("efg"));//判断字符串是否以该字串结尾;(返回类型:boolean)
        System.out.println(str1.compareTo(str3));//比较两字符串大小;
        // (若长度相同则返回不同值的asc值之差)(字符串长度不同则返回length之差);(返回类型:int);
    }
}

  • 输出

  • true
    true
    true
    true
    true
    true
    32
    
5.替换方法
package stringDemo2;

public class tihuan {
    public static void main(String[] args) {
        String str=" abcde1a3f5g ";
        String str1=str.replace("a","A");//替换连续子串;
        System.out.println(str1);
        String str2=str.replaceAll("\\d","A");//正则”模式匹配“替换
        System.out.println(str2);
        String str3=str.replaceFirst("\\d","A");//正则”模式匹配“替换第一次出现的regex;
        System.out.println(str3);
        String str4=str.trim();//去除字符串两端” “空格;
        System.out.println(str.length());
        System.out.println(str4.length());
    }
}

  • 输出

  • Abcde1A3f5g 
    abcdeAaAfAg 
    abcdeAa3f5g 
    13
    11
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Rabbit.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值