String类的常用方法

字符串的内存结构

 

String类的常用方法

TestString

package com.ff.string;

import org.junit.Test;

//equals比较的内容,
//==比较的值(地址值)
//String:代表不可变的字符序列,底层使用char[]存放
//String是final不可被继承的
public class TestString {
/*
public String substring(int startpoint)
public String substring(int start,int end):返回start开始到end结束的一个左闭右开的子串,start从0开始
pubic String replace(char oldChar,char newChar)
public String replaceAll(String old,String new)
public String trim():取出当前字符串中收尾出现的空格
public String concat(String str) : 连接当前字符串与str
public String[] split(String regex):按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[ ]
     
*/
    @Test
    public void test4(){
        String str1 = "今朝有酒今朝醉,";
        String str2 = "明日愁来明日愁。";
        String str3 = str1.substring(1, 3);
        System.out.println(str3);//朝有    [ )  左闭右开
        String str4 = str2.replace("明日", "明夜");//和replaceAll差不多
        System.out.println(str4);
        String str5 = "   abd    ad     ";
        System.out.println(str5.trim());//abd    ad
        String str6 = str1.concat(str2);
        System.out.println(str6);//今朝有酒今朝醉,明日愁来明日愁。
        String str7 = "acn_d-dea-fg";
        String[] strs =  str7.split("-");
        for(int i = 0;i<str7.length();i++){
            System.out.println(strs[i]);
        }
    }
    
    
    
/*
String类的常用方法:
      
public int length()
public char charAt(int index) :返回指定index位置的字符
public boolean equals(Object anObject):比较两个字符串是否相等,相等返回true,不等返回false
public int compareTo(String anotherString):  从前往后比较字符串的首个不同的字符的大小,
                                             若字符串长度不相同,就以字符串的长度进行比较。
若大于结果为正数,小于为负数 public int indexOf(String s):返回s字符串在当前字符串中首次出现的位置,若没有返回 -1 public int indexOf(String s,int startpoint):返回s字符串从当前字符串savepoint位置开始的,首次出现的位置 public int lastIndexOf(String s):返回s字符串最后一次在当前字符串出现的位置,若无,返回-1 public int lastIndexOf(String s ,int startpoint);同上 public boolean startsWith(String prefix):判断当前字符串是否以suffix开始 public boolean endsWith(String suffix):判断当前字符串是否以suffix结束 public boolean regionMatches(int firstStart,String other,int otherStart ,int length) 判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字符串是否equals
*/ @Test public void test3() { String str1 = "abcdefghigk"; String str2 = "abcd"; String str3 = "bc"; String str4 = "jkbcc"; System.out.println(str2.length());//4 System.out.println(str1.charAt(0));//a System.out.println(str1.equals(str2));//fales System.out.println(str2.equals("abcd"));//true System.out.println(str1.compareTo(str2));//7 System.out.println(str1.indexOf(str3));//1 没有的话返回-1 System.out.println(str1.indexOf(str2, 3));// -1 System.out.println(str1.startsWith(str2)); System.out.println(str1.regionMatches(10, str4, 0, str3.length()));//false } @Test public void test2() { //String是一个不可改变字符的序列,一旦被赋值,其值不可更改 String str1 = "java"; str1 = str1 + "android"; System.out.println(str1);//javaandroid } @Test public void test1() { String str1 = "JavaEE"; String str2 = "JavaEE"; String str3 = new String("JavaEE"); String str4 = "JavaEE" + "Android"; String str5 = "Android"; String str6 = str1 + str5; str5 = str5 + "Handoop"; String str7 = str6.intern(); String str8 = "JavaEEAndroid"; System.out.println(str1 == str2);// true System.out.println(str1 == str3);// false System.out.println(str1.equals(str3));// true System.out.println(str4 == str6);// false System.out.println(str4.equals(str6));// true 4是两个地址值,和6拼到一起的不一样 System.out.println(str7 == str4);// true 这两个拼到一起的一样 System.out.println(str4 == str8);// true Person p1 = new Person("AA"); Person p2 = new Person("AA"); System.out.println("--------" + (p1.name == p2.name));
// true, // P1,P2的name属性指的都是常量池中同一个AA的地址值 } } class Person { String name; public Person(String name) { this.name = name; } }

 

posted @ 2020-04-02 02:33  林淼零  阅读(226)  评论(0编辑  收藏  举报