Java 字串擷取
阿新 • • 發佈:2018-12-17
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