1. 程式人生 > >Java 字串擷取

Java 字串擷取

1. split()+正則表示式

將正則傳入split()。返回的是一個字串陣列型別。不過通過這種方式擷取會有很大的效能損耗,因為分析正則非常耗時。

        String str = "app-hello-world";
        String[] strs = str.split("-");
        for (String s:strs) {
            System.out.println(s);
        }
        
        結果:
        app
        hello
        world

2. subString()根據傳入索引值擷取

可以有不用的傳入引數來提供不同的擷取方式(索引從0開始)

2.1 一個引數

傳入1,從1開始到結束

        String str = "app-hello-world";
        str.substring(1)
        
        結果:
        pp-hello-world
2.2 二個引數

從索引0開始,3結束(但是不包括3)

        String str = "app-hello-world";
        str.substring(0,3)
        
        結果:
        app

3. StringUtils方法

根據引數擷取字串

        String str = "app-hello-world";
        
        //擷取str中的最後一個“-”之前的字串
        StringUtils.substringBefore(str, "-"); 
        
        //擷取str中的最後一個“-”之前的字串
        StringUtils.substringBeforeLast(str, "-"); 
        
        結果:
        app
        app-hello

4.拓展方法,擷取任意字串之前或之後的字串

(字串中有相同的欄位,如:app-hello-world)
        String str = "app-hello-world";
        //字串中第一個出現"-"的索引
        int beginIndex = str.indexOf("-");
        //字串中最後一個出現"-"的索引
        int endIndex = str.lastIndexOf("-");
        
        //擷取指定字元前的字元
        System.out.println(str.substring(0,beginIndex));
        //擷取指定字元之後的字元
        System.out.println(str.substring(beginIndex + 1));

        //擷取最後一個出現字元前的字串
        System.out.println(str.substring(0,endIndex));
        //擷取最後一個出現字元後的字串
        System.out.println(str.substring(endIndex + 1));

        //擷取倆個特定字串中間的欄位
        System.out.println(str.substring(beginIndex + 1,endIndex));
        
        結果:
        app
        hello-world
        
        app-hello
        world
        
        hello