String字符串常用的一些方法

从概念上来说,String字符串就是Unicode字符序列。(例如,串“Java\u2122”)由五个Unicode字符J、a、v、a和TM。Java中没有内置的字符串类型,而是在标准的Java类库中提供了一个预定义类,很自然的叫做String。

String类实例化方式 

 String类是引用类型,该类实例化方式有两种:

1、直接赋值

这种方式会出现常量池数据共享的情况。上述代码执行“String str1 = ”abc“;”后,JVM在常量池中开辟空间存放一个abc字符串空间并让str1指向该对象;

执行“String str2 = ”abc“;”时,JVM会先检查常量池中是否已经存在了一内容为abc的空间,如果存在就直接让str2指向该空间,否则就会在开辟一个新的空间存放该字符串,上面的代码等同于下面代码:

下面代码的jvm执行过程:

执行“String str1 = ”abc“;”后,JVM在常量池中开辟空间存放一个abc字符串空间并让str1指向该对象;         2、执行“String str2 = ”abc“;”时,JVM会先检查常量池中是否已经存在了一个内容为abc的空间,如果存在就直接让str2指向该空间,否则就会在开辟一个新的空间存放该字符串;         3、执行“String str3 = ”def“;”时,JVM会先检查常量池中是否已经存在了一个内容为def的空间,由于不存在,所以JVM在常量池中新开辟一个空间存放def并让str3指向该空间;

2、构造方法实现实例化

这种方式每new一次就会创建一个新的对象。下面代码jvm的执行过程:

  1、执行“String str = ”abc“;”后,JVM在常量池中开辟存放abc的空间并让str指向该空间;         2、执行“String str1 = new String(str);”时,JVM直接创建一个新的对象并让str1指向该对象;         3、执行“String str2 = new String(str);”时,JVM再次创建一个新的对象并让str2指向该对象;

String类中常用的方法 

1、 indexOf

     indexOf(String str) 

     indexOf(String str,int fromIndex)

     indexOf(int cp)

     indexOf(int cp,int fromIndex)返回字符串str或代码cp匹配的第一个子串开始的位置。这个位置从索引0开始或fromIndex开始计算。如果在原始串中不存在str,返回-1

2、lastIndexOf

     lastIndexOf(String str)

     lastIndexOf(String str,int fromIndex)

     lastIndexOf(int cp)

     lastIndexOf(int cp,int fromIndex)返回与字符串str或代码点cp匹配的最后一个子串的开始位置。这个位置从原始串尾端或fromIndex开始计算

public class Test {
    public static void main(String[] args) {

        String a="aaabbbaaacccc";

        System.out.println( a.indexOf("a"));//0
        System.out.println( a.indexOf("a",2));//2

        System.out.println( a.lastIndexOf("a"));//8
        System.out.println( a.lastIndexOf("a",2));//2
    }
}

3、contains()

该方法是判断字符串中是否有子字符串。如果有则返回true,如果没有则返回false。

public class Test {
    public static void main(String[] args) {

        String a="aaabbbaaacccc";
        String b = "aa";
        System.out.println(a.contains(b));
        System.out.println(b.contains(a));
    }
}

运行结果:

4、split(String sign)

分割字符串,split方法返回的是数组类型,该数组由目标字符串根据sign拆分得到。

public class Test {
    public static void main(String[] args) {

        String a="aaabaaabcccbbbc";
        String[] array = a.split("b");
        int i=0;
        for (String arr:array) {
            System.out.println(arr);
            i++;
        }
        System.out.println("------->"+i);
    }
}

运行结果:

5、startsWith 和endWith

boolean startsWith (String prefix)

boolean  endWith (String prefix)     如果字符串以suffix开头或者结尾,则返回true

6、subString

String subString(int start)返回当前字符串从start开始截取到当前字符串末尾的部分。

String subString(int start,int end)返回当前字符串,从start开始截取到end之前的部分。

String类中的subString方法可以从一个较大的字符串中提取出一个子串。

public class Test {
    public static void main(String[] args) {

        String a="aaabaaabcccbbbc";
        String s=a.substring(4);
        System.out.println(s);
        String u=a.substring(4,6);
        System.out.println(u);
    }
}

运行结果:

7、getBytes()方法

得到一个操作系统默认的编码格式的字节数组。这表示在不同的操作系统下,返回的东西不一样!

8、toCharArray()

将字符串转换为char类型的数组:

public class Test {
    public static void main(String[] args) {

        String a="aaab";
        char[]str= a.toCharArray();
        for (char s:str
             ) {
            System.out.println(s);
        }
    }
}

运行结果:

9、String replaceAll(String old, String new) 

返回当前字符串用new替换old的结果

10、String trim()

返回去掉当前字符串左右两端空格后的字符串,注意:当前字符串中间空格不会去掉。

运行结果:

10、int length() 返回字符串的长度

空串与null串

空串“”是长度为0的字符串 ,空串是一个Java对象,有自己的串长度为0和内容为空。

String类中还可以存放一个特殊的 值,名为null,这表示目前没有任何对象与该变量关联。

11、字符串拼接

与绝大多数程序设计语言一样,Java允许使用+号连接(拼接)两个字符串。

注意:单词之间没有空格

public class Test {
    public static void main(String[] args) {

        String a=" aabb";
        String str="AABB";
        System.out.println(a+str);
    }
}

运行结果 :

将一个字符串和一个非字符串的值进行拼接,后者被转换成字符串

public class Test {
    public static void main(String[] args) {

        String a=" aabb";
        int num=13;
        System.out.println(a+num);
    }
}

运行结果: 

12、静态join方法

String join(CharSequence delimiter,charSequence...elements),返回一个新字符串,用给定的定界符连接所有元素。

如果需要把多个字符串放在一起,用一个定界符分隔,可以使用静态join方法:

运行结果:

13、equals

equals(String targetString) 用于判断两个字符串是否相同,完全相同返回true,否则返回false:

String 类equals方法和==区别:

String类中的equals方法用于判断两个字符串内容是否相同:

如果所比较的两个变量是引用类型,则==用于比对两个变量指向的是否为同一个存放数据的地址;如果是基本数据类型的两个变量进行比较,则比较的是值是否相等:

14、equalsIgnoreCase

Boolean equalsIgnoreCase (String value) 用于判断两个字符串忽略大小写后是否相同,相同返回true,否则返回false:

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值