Java常用类--String类

String类

  • 字符串是常量,创建后不可改变
  • 字符串字面值存储在字符串池中,可以共享

常用方法

length() 返回字符串的长度

String content="  java是世界上最好的语言,java天下第一  ";
System.out.println(content.length());	//26

charAt(int index) 返回某个位置的字符

System.out.println(content.charAt(2));	//j

contains(String str) 判断是否包含某个子字符串

System.out.println(content.contains("java"));	//true
System.out.println(content.contains("jaa"));	//false

toCharArray 返回字符串对应的数组

System.out.println(Arrays.toString(content.toCharArray()));
//[ ,  , j, a, v, a, 是, 世, 界, 上, 最, 好, 的, 语, 言, ,, j, a, v, a, 天, 下, 第, 一,  ,  ]

indexOf 返回子字符串首次出现的位置

System.out.println(content.indexOf("java"));	//2
//str子字符串,fromindex从那个索引开始查找
System.out.println(content.indexOf("java",4));	//16

lastIndexOf 返回子字符串最后一次出现的位置

System.out.println(content.lastIndexOf("java"));	//16

trim 去掉字符串前后的空格

System.out.println(content.trim());
//java是世界上最好的语言,java天下第一

toUpperCase 小写转大写 toLowerCase 大写转小写

System.out.println(content.toUpperCase());
//  JAVA是世界上最好的语言,JAVA天下第一  

endsWith(String str) 判断字符串是否以str结尾 startsWith(String str) 判断字符串是否以str开始

System.out.println(content.endsWith(" "));	//true

replace 用新的字符或字符串替换旧的字符和字符串

System.out.println(content.replace("java","php"));
//  php是世界上最好的语言,php天下第一  

split 对字符串进行拆分

  • []中为用来划分字符串的所有依据
  • []+表示划分的依据可以是一个或者多个
System.out.println(Arrays.toString(content.split("是")));
//[  java, 世界上最好的语言,java天下第一  ]
System.out.println(Arrays.toString(content.split("[ 是,]+")));
//[, java, 世界上最好的语言, java天下第一]

substring(int beginIndex) 获取从beginIndex开始的子字符串

System.out.println(content.substring(3));
//ava是世界上最好的语言,java天下第一  

equals()和compareTo()

String s1="java";
String s2="Java";
String s3="jbva";
String s4="javaabc";
//        equals比较是否相同
System.out.println(s1.equals(s2));
System.out.println(s1.equalsIgnoreCase(s2));
//        compareTo比较两个字符串在字典中的排序大小(ascall编码值比较),大写字母<小写字母
System.out.println(s1.compareTo(s2));
System.out.println(s1.compareTo(s3));   //字符依次向后比较,第一个不同时,ascall码相减
System.out.println(s1.compareTo(s4));   //前面都相同,字符长度相减

例题

/**
 * 1.将str中的单词单独提取出来
 * 2.在text前面插入一个easy
 * 3.将str中的text替换成content
 * 4.将每个单词首字母大写
 */
String str = "this is a text";
//1.
String[] s=str.split(" ");
System.out.println("1.  "+Arrays.toString(s));
//2.
String str1=str.replace("a","a easy");
System.out.println("2.  "+str1);
//3.
String str2=str.replace("text","content");
System.out.println("3.  "+str2);
//4.
StringBuilder str3 = new StringBuilder();
for (int i=0;i<s.length;i++) {
    char upperFirst=Character.toUpperCase(s[i].charAt(0));
    if(i==s.length-1)
        str3.append(upperFirst).append(s[i].substring(1));
    else
        str3.append(upperFirst).append(s[i].substring(1)).append(" ");
}
System.out.println("4.  "+str3);

StringBuffer

  • 可变长字符串,jdk1.0提供,运行效率慢,线程安全
StringBuffer stringBuffer=new StringBuffer();
//添加
stringBuffer.append("this is a text");
System.out.println(stringBuffer);
//插入
System.out.println(stringBuffer.insert(stringBuffer.length()-4,"easy "));
//替换
System.out.println(stringBuffer.replace(stringBuffer.length()-4,stringBuffer.length(),"content"));
//删除
System.out.println(stringBuffer.delete(stringBuffer.length()-4,stringBuffer.length()));

StringBuilder

  • 可变长字符串,jdk5.0提供,运行效率快,线程不安全
    比String效率高,节省内存
long start=System.currentTimeMillis();
String str="";
for(int i=0;i<9999;i++){
    str+=i;
}
//        System.out.println(str);
long end=System.currentTimeMillis();
long start1=System.currentTimeMillis();
System.out.println("String用时:"+(end-start));
StringBuilder stringBuilder=new StringBuilder();
for(int i=0;i<9999;i++){
    stringBuilder.append(i);
}
//        System.out.println(stringBuilder);
long end1=System.currentTimeMillis();
System.out.println("StringBuilder用时:"+(end1-start1));

完整代码:

public class StringClass {
    public static void main(String[] args) {
        //不可变性
        //新建字符串会在字符串池中存储,str指向nihao在字符串池中的地址
        /*String str ="nihao";
        str="yang";     //重新赋值str,str会指向yang在字符串中的地址,但是nihao依然存在,但是成为垃圾

        String str1=new String("java"); //会在堆和字符串中都创建一个对象
        String str2=new String("java");
        System.out.println(str1==str2);
        System.out.println(str1.equals(str2));*/
        testMethod();
        Demo();
        testStringBuffer();
        testEffect();

    }

    private static void testEffect() {
        long start=System.currentTimeMillis();
        String str="";
        for(int i=0;i<9999;i++){
            str+=i;
        }
//        System.out.println(str);
        long end=System.currentTimeMillis();
        long start1=System.currentTimeMillis();
        System.out.println("String用时:"+(end-start));
        StringBuilder stringBuilder=new StringBuilder();
        for(int i=0;i<9999;i++){
            stringBuilder.append(i);
        }
//        System.out.println(stringBuilder);
        long end1=System.currentTimeMillis();
        System.out.println("StringBuilder用时:"+(end1-start1));


    }

    private static void testStringBuffer() {
        StringBuffer stringBuffer=new StringBuffer();
        //添加
        stringBuffer.append("this is a text");
        System.out.println(stringBuffer);
        //插入
        System.out.println(stringBuffer.insert(stringBuffer.length()-4,"easy "));
        //替换
        System.out.println(stringBuffer.replace(stringBuffer.length()-4,stringBuffer.length(),"content"));
        //删除
        System.out.println(stringBuffer.delete(stringBuffer.length()-4,stringBuffer.length()));
    }

    private static void Demo() {
        /**
         * 1.将str中的单词单独提取出来
         * 2.在text前面插入一个easy
         * 3.将str中的text替换成content
         * 4.将每个单词首字母大写
         */
        String str = "this is a text";
        //1.
        String[] s=str.split(" ");
        System.out.println("1.  "+Arrays.toString(s));
        //2.
        String str1=str.replace("a","a easy");
        System.out.println("2.  "+str1);
        //3.
        String str2=str.replace("text","content");
        System.out.println("3.  "+str2);
        //4.
        StringBuilder str3 = new StringBuilder();
        for (int i=0;i<s.length;i++) {
            char upperFirst=Character.toUpperCase(s[i].charAt(0));
            if(i==s.length-1)
                str3.append(upperFirst).append(s[i].substring(1));
            else
                str3.append(upperFirst).append(s[i].substring(1)).append(" ");
        }
        System.out.println("4.  "+str3);

    }

    private static void testMethod() {
        //String类常用方法
//        1.length()  返回字符串的长度
        String content="  java是世界上最好的语言,java天下第一  ";
        System.out.println(content.length());
//        2.charAt(int index)     返回某个位置的字符
        System.out.println(content.charAt(2));
//        3.contains(String str)  判断是否包含某个子字符串
        System.out.println(content.contains("java"));
        System.out.println(content.contains("jaa"));
        //4.toCharArray   返回字符串对应的数组
        System.out.println(Arrays.toString(content.toCharArray()));
//        5.indexOf(String str)   返回子字符串首次出现的位置
        System.out.println(content.indexOf("java"));
//        str子字符串,fromindex从那个索引开始查找
        System.out.println(content.indexOf("java",4));
//        6.lastIndexOf(String str)   返回子字符串最后一次出现的位置
        System.out.println(content.lastIndexOf("java"));
//        7.trim  去掉字符串前后的空格
        System.out.println(content.trim());
//        8.toUpperCase   小写转大写       toLowerCase     大写转小写
        System.out.println(content.toUpperCase());
//        9.endsWith(String str)  判断字符串是否以str结尾
//        startsWith(String str)    判断字符串是否以str开始
        System.out.println(content.endsWith(" "));
//        10.replace    用新的字符或字符串替换旧的字符和字符串
        System.out.println(content.replace("java","php"));
//        11.split  对字符串进行拆分
        System.out.println(Arrays.toString(content.split("是")));
        //[]中为用来划分字符串的所有依据,[是,]使用"是"和","来划分字符串
        //[]+表示划分的依据可以是一个或者多个
        System.out.println(Arrays.toString(content.split("[ 是,]+")));
//        12.substring(int beginIndex)  获取从beginIndex开始的子字符串
        System.out.println(content.substring(3));

        String s1="java";
        String s2="Java";
        String s3="jbva";
        String s4="javaabc";
//        equals比较是否相同
        System.out.println(s1.equals(s2));
        System.out.println(s1.equalsIgnoreCase(s2));
//        compareTo比较两个字符串在字典中的排序大小(ascall编码值比较),大写字母<小写字母
        System.out.println(s1.compareTo(s2));
        System.out.println(s1.compareTo(s3));   //字符依次向后比较,第一个不同时,ascall码相减
        System.out.println(s1.compareTo(s4));   //前面都相同,字符长度相减
    }
}

其他相关文章:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

likehack

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

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

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

打赏作者

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

抵扣说明:

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

余额充值