Java初学笔记APIday01--String、String常用方法

一、String字符串类型

1.String字符串类型:

--java.lang.String类使用final修饰,不能被继承

--String的底层封装的是一个字符数组

--String在内存中采用Unicode编码格式,每个字符占2个字节的内存空间

--字符串对象一旦创建,对象内容永远无法改变,但字符串引用可以重新赋值(指向新的对象)

--String称为不变对象

2. 字符串常量池:是java对String的一个优化措施

--java推荐使用字面量/直接量(直接"")的方式来创建字符串对象,并且会将所有以字面量方式创建的对象缓存到常量池中,当使用相同字面量再创建字符串对象时将会复用常量池中的对象,以减少内存开销

二、String类的常用方法

1.length()获取字符串的长度(字符个数)

package string;
/**
 * 获取字符串的长度
 */
public class LengthDemo {
    public static void main(String[] args) {
        String str = "我爱Java!";
        int len = str.length();//获取str的长度
        System.out.println(len);//7
    }
}

2.trim():去除当前字符串两边的空白字符

package string;
/**
 * String trim():去除当前字符串两边的空白字符
 */
public class TrimDemo {
    public static void main(String[] args) {
        String str = "        hello world        ";
        System.out.println(str);//        hello world
        str = str.trim();//去除str两边的空白字符(生成一个新的字符对象)
                        //并将新的字符串对象存储到str中
        System.out.println(str);//hello word
    }
}

3.toUpperCase()/toLowerCase():将当前字符中英文部分转成大写/小写

package string;
/**
 * String toUpperCase():
 * 将当前字符串中的英文部分给转换为全大写
 * String toLowerCase():
 * 将当前字符串中的英文部分给转换为全小写
 */
public class ToUpperCaseDemo {
    public static void main(String[] args) {
        String str = "我爱Java";
        String upper = str.toUpperCase();//将str中的英文部分给转换为全大写,并存入upper中
        System.out.println(upper);

        String lower = str.toLowerCase();//将str中的英文部分给转换为全小写,并存入lower中
        System.out.println(lower);

    }
}

4.startsWith();/endsWith():判断当前字符串是否是以给定的字符串开始/结束的

package string;
/**
 * boolean startsWith(String s);
 * 判断当前字符串是否是以给定字符串(s)开始的
 * boolean endsWith(String s):
 * 判断当前字符串是否是以给定字符串(s)结束的
 */
public class StartsWithDemo {
    public static void main(String[] args) {
        String str = "thinking in java";//java编程思想(经典书---工具书)
        boolean starts = str.startsWith("think");//判断str是否是以think开头的
        System.out.println(starts);

        boolean ends = str.endsWith(".png");//判断str是否是以.png结尾的
        System.out.println(ends);
    }
}

5.charAt():返回当前字符串指定位置上的字符----根据位置找字符

package string;
/**
 * char charAt(int index):
 * 获取当前字符串指定位置(index)上的字符-----根据位置找字符
 */
public class CharAtDemo {
    public static void main(String[] args) {
        String str = "thinking in java";
        char c = str.charAt(9);//获取str中下标9所对应的字符
        System.out.println(c);
    }
}

6.indexOf()/lastIndexOf():检索给定字符串在当前字符串中第一次/最后一次出现的位置---根据字符串找位置

package string;
/**
 * int indexOf(String s):
 * 检索给定字符串(s)在当前字符串中第一次出现的位置---根据字符串找位置
 * int lastIndexOf(String s):
 * 检索给定字符串(s)在当前字符串中最后一次出现的位置
 */
public class IndexOfDemo {
    public static void main(String[] args) {
        String str = "thinking in java";
        int index = str.indexOf("in");//检索in在str中第1次出现的位置
        System.out.println(index);
        index = str.indexOf("in",3);//从下标为3的位置开始找in第1次出现的位置
        System.out.println(index);

        index = str.indexOf("abc");//若字符串在str中不存在,则返回-1
        System.out.println(index);

        index = str.lastIndexOf("in");//检索in在str中最后一次出现的位置
        System.out.println(index);
    }
}

7.substring():截取当前字符串中指定范围的字符串(含头不含尾)

package string;
/**
 * String substring(int index,int end):
 * 截取当前字符串中指定范围内的字符串(含头不含尾)
 */
public class SubstringDemo {
    public static void main(String[] args) {
        //            01234567890
        String str = "www.xxxx.cn";
        int start = 4;
        int end = 8;
        String name  = str.substring(start,end);//载取下标4到7之内的字符串
        System.out.println(name);
    }
}

/**
*扩展:双后缀情况下截取当前字符串中指定范围内的字符串
*index和substring搭配使用
*/
public class SubstringDemo {
    public static void main(String[] args) {
        //            01234567890
        String str = "www.xxxx.com.cn";
        int start = str.indexOf(".")+1;//4
        int end = str.indexOf(".",start);//8
        String name  = str.substring(start,end);//载取下标4到7之内的字符串
        System.out.println(name);
    }
}

8.静态方法valueOf():将其他数据转换为字符串

package string;
/**
 * static String valueOf(数据类型 a):
 * 将其它数据类型转换为String
 */
public class ValueOfDemo {
    public static void main(String[] args) {
        int a = 123;
        String s1 = String.valueOf(a); //将int型变量a转换为String类型并赋值给s1
        System.out.println(s1); //123---字符串类型

        double b = 123.456;
        String s2 = String.valueOf(b); //将double型变量b转换为String类型并赋值给s2
        System.out.println(s2); //123.456---字符串类型

        String s3 = b+""; //任何类型与字符串相连,结果都会变为字符串类型,效率低
        System.out.println(s3); //123.456---字符串类型
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值