Java string特点及基本用法

开始学习Java之后,便会接触到string类。string就像是C语言中常说的字符串,字符串其实就是一个String类的对象。
在这里我简单总结一下string类的用法特点,并且结合代码演示。

  1. 定义字符串
    第一步我们先定义一下字符串。字符串的定义一般有两种方法,常用的是第一种直接赋值。
  • 直接赋值 (直接赋值放在堆中常量池里):
String str1="hello Java ";
  • 构造方法:intern 手动入池方法
String str2=new String("hello  Java"); 

如果使⽤String构造⽅法就会开辟两块堆内存空间,并且其中⼀块堆内存将成为垃圾空
间,不会⾃动保存在对象池中,使⽤⼿动⽅法⼊池。
采用intern()方法:

  String str1 = new String("hello").intern() ; 
  String str2 = "hello" ; 
  System.out.println(str1 == str2);//结果为false
  1. 字符串的拼接
String str = "hello";//将"hello"赋给str
str += " Java";//将" Java"连接上"hello"

String的拼接每次都会产生新的对象,以下列出了不同的拼接情况

 String str = "helloJava";
        String str2 = new String("helloJava");
        System.out.println(str == str2);
        String str3 = "helloJava";
        System.out.println(str == str3);
        String str4 = "hello"+"Java";//str4 = "helloJava"
        System.out.println(str == str4);//true
        System.out.println(str3 == str4);
        String str5 = "hello";
        String str6 = str5+"Java";//str5是一个变量
        System.out.println(str == str6);//false

        String str7 = "hello"+new String("Java");
        System.out.println(str == str7);//false

        String str8 = new String("hello") +new String("Java");
        System.out.println(str == str8);//false

        String str9 = new String("student").intern();
        String str10 = "student";
        System.out.println(str9 == str10);

        String str11 = new String("" +"hellobit").intern();
        System.out.println(str == str11);
  1. 字符串比较
    1.使用equals()方法比较
        String str = null;
        String str2 = new String("hello Bit");
        System.out.println(str.equals(str2));

2.区分大小写比较:

String str=“abcde”;
String str1=“Abcde”;
System.out.println(str.equals(str1));//结果为false

3.不分大小写:

String str=“abcde”;
String str1=“Abcde”;
System.out.println(str.equalsIgnoreCase(str1));//结果为true

4.比较字符串大小compareTo()
比较的是从0号下标开始的第一个不相同的字符的Asscil的值。
例如:

tring str=“abcde”;
String str1=“Abcde”;
System.out.println(str.compareTo(str1));  //结果为32
  1. 字符串查找
    a.判断一个子字符串是否存在
String str=“abcde”;
System.out.println(str.contains(“bc”));

b.根据下标获取某个字符串
获取字符方式为String charAt(),括号里面为要获取的字符串下标

System.out.println("获取下标为3的字符"+new String("abcdefgh").charAt(3))

c.从指定位置开始查找指定字符串,找到返回下标位置,找不到返回-1

String str = "abcdefgh" ; 
System.out.println(str.indexOf("ef"));  //4
String str = "abcdefgh" ; 
System.out.println(str.indexOf("hi"));//-1

使⽤indexOf()的注意点,如果查找内容重复,它只能返回查找的第⼀个位置

String str = "abcdefghef" ; 
System.out.println(str.indexOf("ef"));//4

d.从指定位置开始查找

 String str = "abcdefgh" ; 
 System.out.println(str.lastIndexOf("b",1));

e.从后往前查找指定字符串

String str=“abcdefgh”;
System.out.println(str.lastIndexOf(“b”));//
  1. 字符串替换
String str1 = "abcdefbc";//3
        //把第一个参数替换为第二个参数
        String str2 = str1.replaceAll("bc","xx);
        System.out.println(str2);
        String str3 = str1.replaceFirst("bc","xx");
        System.out.println(str3);
  1. 字符拆分
    a.全部拆分
String str = "i am a boy" ; 
String[] result = str.split(" ") ; // 按照空格拆分
for(String s: result) {
 System.out.println(s);
}
  1. 判断一个字符是否为数字(Character.isDigit(str.charAt(i))
public static boolean isNumber(String str) {
        for (int i = 0; i < str.length(); i++) {
            if(!Character.isDigit(str.charAt(i))) {
                return false;
            }
        }
        return true;
    }
  1. 将字符串变为数组
        char[] chars = str3.toCharArray();
        System.out.println(Arrays.toString(chars));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值