轉自:https://blog.csdn.net/zjx2016/article/details/74557301
在項目中經常會遇到截取字符串的需求,這里重點介紹兩種常見的截取字符串方法。
方法一:通過split()
將正則傳入split()。返回的是一個字符串數組類型。不過通過這種方式截取會有很大的性能損耗,因為分析正則非常耗時。
String str = "53285964@qq.com";
String[] strs = str.split("@");
for(int i=0,i<strs.length;i++){
System.out.println(strs[i].toString());
}
運行結果:
53285964
qq.com
方法二:通過subString()方法來進行字符串截取
1、只傳一個參數:subString(int beginIndex)
將字符串從索引號為beginIndex開始截取,一直到字符串末尾。(注意索引值從0開始);
String sb = "asdfghj";
String str = sb.substring(2);
System.out.println(str);
運行結果:
dfghj
2、傳入兩個參數:substring(int beginIndex, int endIndex)
從索引號beginIndex開始到索引號endIndex結束(返回結果包含索引為beginIndex的字符不包含索引我endIndex的字符),如下所示:
String sb = "53285964@qq.com";
String str = sb.substring(0, 8);
System.out.println(str);
運行結果
53285964
3、根據某個字符截取字符串
這里根據”@”截取字符串(也可以是其他子字符串)
String sb = "53285964@qq.com";
String str = sb.substring(0, sb.indexOf("@"));
System.out.println(str);
運行結果:
53285964
分析:indexOf(String str)方法返回的是子字符串第一次出現在字符串的索引位置,上面的代碼返回的是@前面的字符。
二
1.用substring()來截取
理論上它是按照字符串.substring(字符串.lastIndexOf("\\")+1)這個格式來的,但是在涉及到特殊符號時需要用\\來轉義,所以注意下。
例子:
-
public class Test {
-
-
public static void main(String[] args) {
-
String fileName= "E:/eclipse_workspace1/FtpOperateFile/logs/IYinXin.log";
-
String newFileName=fileName.substring(fileName.lastIndexOf( "/")+1);
-
System.out.println( "最后一個文件名為=====>"+newFileName);
-
}2.用split()來截取
注:遇到特殊符號時需要用\\來轉義
例子:
-
public static void main(String[] args) {
-
String fileName= "E:/eclipse_workspace1/FtpOperateFile/logs/IYinXin.log";
-
//用/進行切割
-
String[] spiltFileName=fileName.split( "\\/");
-
//獲取最后一個文件名
-
String lastName=spiltFileName[spiltFileName.length- 1];
-
System.out.println( "最后一個文件名是=====>"+lastName);
-
}
-
獲取“ .”后面字符
String fileSplit=file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));