最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java截取字符串中的指定字符的兩種方法(以base64圖片為例)

 更新時間:2023年08月08日 10:23:17   作者:【金融科技螞蟻】  
本文介紹了使用Java截取字符串中指定字符的方法,通過substring索引和正則實現(xiàn),文章詳細(xì)介紹了實現(xiàn)步驟和示例代碼,對于想要了解如何使用Java截取字符串指定字符的讀者具有一定的參考價值

首先拋出如下問題:

前端傳了一個 base64 類型的圖片給后端,那么我后端要怎么獲取這個圖片的類型呢?是 image /gif 還是 image/jpeg 亦或是 image/png ?這個時候你當(dāng)然可以在后端將 base64 類型的圖片轉(zhuǎn)化為 File 類型或者 byte 類型,然后調(diào)用 java 內(nèi)置的獲取文件類型的方法即可,但這不是最簡便的, 下面介紹簡單粗暴的方法:利用截取指定字符的方式去獲取圖片類型。

假設(shè)前端傳給后端的 base64 字符串為:

data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=

顯然這個字符串前半部分已經(jīng)涵蓋了文件類型(位于冒號和分號之間的部分),我們只需要將其截取出來即可,代碼如下:

方法一、使用substring索引

String base64File= "data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=";
int beginIndex = base64File.indexOf(":");  //開始截取的索引值
System.out.println("開始截取的索引值為:" + beginIndex);
int endIndex = base64File.indexOf(";");    //結(jié)束截取的索引值
System.out.println("結(jié)束截取的索引值為:" + endIndex);
String fileType = base64File.substring(beginIndex + 1, endIndex);  //開始截取的索引值需加 1 ,因為 substring 方法取頭不取尾
System.out.println("圖片類型為:" + fileType);
if(!"image/jpeg".equals(fileType)) {
    return "圖片類型有誤,請重傳!"
}

運(yùn)行結(jié)果如下:

注意:上述代碼不可寫成如下形式:

String base64File= "data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=";
String fileType = base64File.substring(5, 15); 
System.out.println("圖片類型為:" + fileType);

 beginIndex 和 endIndex 不能寫死,因為圖片類型不一定是 10 位的,如果圖片類型是 image/png(9位的),那么上述代碼的結(jié)果將是 "image/png;" ,尾巴多了一個分號是錯誤的。

方法二、使用正則表達(dá)式

String base64File ="data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=";
Pattern pattern = Pattern.compile("(?<=:)[\\s\\S]*(?=;)");  //冒號和分號之間的任意字符
Matcher matcher = pattern.matcher(base64File);
if(matcher.find()) {
    System.out.println("截取的字符串為:" + matcher.group());
}

運(yùn)行結(jié)果如下:

到此這篇關(guān)于java截取字符串中的指定字符的兩種方法(以base64圖片為例)的文章就介紹到這了,更多相關(guān)java截取字符串指定字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot訪問不到controller的解決方案

    SpringBoot訪問不到controller的解決方案

    這篇文章主要介紹了SpringBoot訪問不到controller的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Java中讀取文件時間屬性之創(chuàng)建時間、修改時間、訪問時間的跨平臺實現(xiàn)

    Java中讀取文件時間屬性之創(chuàng)建時間、修改時間、訪問時間的跨平臺實現(xiàn)

    在工作時候我們有時候需要獲取到文件的最后更新時間,根據(jù)最近更新時間,來處理其他業(yè)務(wù),這篇文章主要介紹了Java中讀取文件時間屬性之創(chuàng)建時間、修改時間、訪問時間的跨平臺實現(xiàn),需要的朋友可以參考下
    2025-08-08
  • SpringDataJPA原生sql查詢方式的封裝操作

    SpringDataJPA原生sql查詢方式的封裝操作

    這篇文章主要介紹了SpringDataJPA原生sql查詢方式的封裝操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 深入理解Java中的HashMap

    深入理解Java中的HashMap

    HashMap是Java程序員使用頻率最高的用于映射(鍵值對)處理的數(shù)據(jù)類型。隨著JDK(Java Developmet Kit)版本的更新,JDK1.8對HashMap底層的實現(xiàn)進(jìn)行了優(yōu)化,例如引入紅黑樹的數(shù)據(jù)結(jié)構(gòu)和擴(kuò)容的優(yōu)化等。本文將深入探討HashMap的結(jié)構(gòu)實現(xiàn)和功能原理
    2021-06-06
  • SpringBoot整合Redis之編寫RedisConfig

    SpringBoot整合Redis之編寫RedisConfig

    RedisConfig需要對redis提供的兩個Template的序列化配置,所以本文為大家詳細(xì)介紹了SpringBoot整合Redis如何編寫RedisConfig,需要的可以參考下
    2022-06-06
  • java.exe和javaw.exe的區(qū)別及使用方法

    java.exe和javaw.exe的區(qū)別及使用方法

    這篇文章主要介紹了java.exe和javaw.exe的區(qū)別及使用方法,需要的朋友可以參考下
    2014-04-04
  • 基于Java實現(xiàn)一個簡單的單詞本Android App的實踐

    基于Java實現(xiàn)一個簡單的單詞本Android App的實踐

    本文基于Java實現(xiàn)了一個簡單的單詞本安卓app,用的是SQLite數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Spring?Aware接口示例代碼詳解

    Spring?Aware接口示例代碼詳解

    Spring的依賴注入的最大亮點是所有的Bean對Spring容器的存在是沒有意識的,我們可以將Spring容器換成其他的容器,Spring容器中的Bean的耦合度因此也是極低的,本文給大家介紹Spring?Aware接口示例代碼詳解,感興趣的朋友一起看看吧
    2022-02-02
  • 關(guān)于BufferedReader讀取文件指定字符集問題

    關(guān)于BufferedReader讀取文件指定字符集問題

    這篇文章主要介紹了關(guān)于BufferedReader讀取文件指定字符集問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • 在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié)

    在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié)

    這篇文章主要介紹了在IDEA中安裝scala、maven、hadoop遇到的問題小結(jié),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-10-10

最新評論

手机| 金阳县| 元谋县| 罗源县| 黑龙江省| 大荔县| 南投县| 黑河市| 新乡市| 那坡县| 阿图什市| 曲阳县| 盐源县| 祁门县| 舒兰市| 广丰县| 昌江| 昌图县| 高唐县| 宝兴县| 湟中县| 垫江县| 陕西省| 两当县| 临海市| 商城县| 平山县| 永靖县| 兴海县| 兴义市| 济源市| 东明县| 抚宁县| 彩票| 叶城县| 秀山| 南溪县| 南康市| 崇信县| 龙陵县| 辉县市|