【java】String的基本操作

String类适用于描述字符串事物。
那么它就提供了多个方法对字符串进行操作。

常见的操作有哪些?


1、获取

1.1、字符串中包含的字符数,也就是字符串的长度
    int length()
1.2、根据位置获取位置上的某个字符。
    char charAt(int index)
1.3、根据字符获取该字符在字符串中的位置。
    int indexOf(int ch):ch:字符的ASCII码,返回的是ch在字符串中第一次出现的位置。
    int indexOf(int ch,int fromIndex):从fromIndex指定位置开始,获取ch在字符串中出现的位置。

    int indexOf(String str):返回的是str在字符串中第一次出现的位置。
    int indexOf(String str,int fromIndex):从fromIndex指定位置开始,获取str在字符串中出现的位置。

    int lastIndexOf(int ch):反向获取
    int lastIndexOf(int ch,int fromIndex):从fromIndex指定位置开始,反向获取在字符串中出现的位置

2、判断

2.1、字符串中是否包含某一个子串
    boolean contains(String str);
    特殊之处:indexOf(str):可以索引str第一次出现的位置,如果返回-1,表示该str不在字符串中存在。
            所以也可以用。
2.2、字符串中是否有内容
    boolean isEmpty();原理就是判断长度是否为0
2.3、字符串是否是以指定内容开头
    boolean startsWith(String str);
2.4、字符串是否是以指定内容结尾
    boolean endsWith(String str);
2.5、判断字符串内容是否相同。复写了Object类中的equals方法。
    boolean equals(str);
2.6、判断内容是否相同,并忽略大小写。
    boolean equalsIgnoreCase();

3、转换。

3.1、将字符数组转换为字符串
    构造函数:String(char[]):
              String(char[],offset,count):将字符数组的一部分转换为字符串。
    静态方法:static String copyValuesOf(char[]);
              static String copyValuesOf(char[],offset,count);

              static Stirng valuesOf(char[])

3.2、将字符串转换为字符数组
    char[] toCharArray():
3.3、将字节数字转换为字符串
    String(byte[]):
    String(byte[],offset,count):将字节数组的一部分转换为字符串。

3.4、将字符循环转换为字节数组
    byte[] getBytes():
3.5、将基本数据类型转换成字符串。
    static String valuesOf(int)
    static String valuesOf(double)

    3+""   ==  String.valuesOf(3);

    特殊:字符串和字节数组在转换过程中,是可以指定编码表的。

4、替换

String replace(ordchar,newchar);

5、切割

String[] split(regex);

6、子串:获取字符串的一部分。

String substring(begin);
String substring(begin,end);

7、去除空格,比较。

7.1、装换成大写或者是小写。
    String toUpperCase();
    String toLowerCase();

7.2、将字符串两端的多个空格去除。
    String trim();

7.3、对两个字符串进行自然顺序的比较
    int compareTo(str);

代码示例

class StringMethodDemo{
    public static void method_exch(){
        String s = "     Hello Java     ";
        sop(s.toUpperCase());
        sop(s.toLowerCase());
        sop(s.trim());

        String s1 = "AAA";
        String s2 = "aaa";
        sop(s1.compareTo(s2));
    }

    public static void method_sub(){
        String s = "abcdef";
        sop(s.substring(2));//从指定位置开始到结尾。如果角标不存在,会出现字符串角标越界异常。
        sop(s.substring(2,4));//包含头不包含尾。
    }

    public static void method_split(){
        String s1 = "zhangsan,lisi,wangwu";
        String[] s2 = s1.split(",");
        for (int x = 0; x < s2.length; x++){
            sop(s2[x]);
        }
    }

    public static void method_replace(){
        String s = "Hello Java";
        //String s1 = s.replace('a','n');

        String s1 = s.replace("Java","World");
        sop(s1);
    }

    public static void method_trans(){
        char[] arr = {'a','b','c','d','e','f','g'};
        String str1 = new String(arr);
        sop(str1);
        String str2 = new String(arr,1,5);
        sop(str2);
        String s1 = "juhfuhru";
        char[] chs = s1.toCharArray();
        for (int x=0; x<chs.length; x++){
            sop("ch["+x+"]="+chs[x]);   
        }
    }
    public static void method_is(){
        String str = "ArrayDemo.java";


        sop(str.startsWith("Array"));
        sop(str.endsWith(".java"));
        sop(str.contains("Demo"));
    }

    public static void method_get(){
        String str = "abcdefabcdkf";
        sop(str.length());  
        sop(str.charAt(4));//当访问到字符串中不存在的角标时会发生StringIndexOutOfBoundsException
        sop(str.indexOf('a'));//如果没有找到,返回-1
        sop(str.indexOf('b',3));
        sop(str.indexOf("cd"));
        sop(str.indexOf("cd",5));

        //反向索引一个字符出现的位置:
        sop(str.lastIndexOf("a"));
        sop(str.lastIndexOf("a",3));//从角标3处开始反向获取
    }
    public static void main(String[] args){

        sop("获取:");
        method_get();
        sop("判断:");
        method_is();
        sop("转换:");
        method_trans();
        sop("替换:");
        method_replace();
        sop("切割:");
        method_split();
        sop("子串:");
        method_sub();
        sop("去除空格,比较:");
        method_exch();
        /*String s1 = "abc";
        String s2 = new String("abc");
        String s3 = "abc";

        System.out.println(s1==s2);//false
        System.out.println(s1==s3);//true
        */
    }

    public static void sop(Object obj){
        System.out.println(obj);
    }

}

输出结果

获取:
12
e
0
7
2
8
6
0
判断:
true
true
true
转换:
abcdefg
bcdef
ch[0]=j
ch[1]=u
ch[2]=h
ch[3]=f
ch[4]=u
ch[5]=h
ch[6]=r
ch[7]=u
替换:
Hello World
切割:
zhangsan
lisi
wangwu
子串:
cdef
cd
去除空格,比较:
HELLO JAVA
hello java
Hello Java
-32

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值