欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

首先拋出如下問(wèn)題:

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

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

data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=

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

方法一、使用substring索引

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

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

注意:上述代碼不可寫(xiě)成如下形式:

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

 beginIndex 和 endIndex 不能寫(xiě)死,因?yàn)閳D片類(lèi)型不一定是 10 位的,如果圖片類(lèi)型是 image/png(9位的),那么上述代碼的結(jié)果將是 "image/png;" ,尾巴多了一個(gè)分號(hào)是錯(cuò)誤的。

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

String base64File ="data:image/jpeg;base64,R0lGODlhHAAmAKIHAKqqqsvLy0hISObm5vf394uLiwAAA=";
Pattern pattern = Pattern.compile("(?<=:)[\\s\\S]*(?=;)");  //冒號(hào)和分號(hào)之間的任意字符
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java 圖片復(fù)制功能實(shí)現(xiàn)過(guò)程解析

    Java 圖片復(fù)制功能實(shí)現(xiàn)過(guò)程解析

    這篇文章主要介紹了Java 圖片復(fù)制功能實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Java8 Optional原理及用法解析

    Java8 Optional原理及用法解析

    這篇文章主要介紹了Java8 Optional原理及用法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 淺談Java序列化和hessian序列化的差異

    淺談Java序列化和hessian序列化的差異

    這篇文章主要通過(guò)對(duì)二者簡(jiǎn)單的實(shí)現(xiàn)方式的對(duì)比,介紹了Java序列化和hessian序列化的差異,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-09-09
  • 在Spring中配置Quartz的三種方式

    在Spring中配置Quartz的三種方式

    Spring Quartz 是一個(gè)任務(wù)調(diào)度框架,它允許我們定期執(zhí)行特定的任務(wù),在 Spring 中,我們可以通過(guò)多種方式來(lái)配置 Quartz,包括使用 ??@Scheduled?? 注解、XML 配置和 Java 配置,本文將介紹如何在 Spring 中使用這三種方式來(lái)配置 Quartz,需要的朋友可以參考下
    2025-01-01
  • StringBuilder如何拼接(截取)想要的字符串

    StringBuilder如何拼接(截取)想要的字符串

    文章主要介紹了Java中字符串操作的兩種常用類(lèi)StringBuilder和StringBuffer,以及三元表達(dá)式的使用和字符串截取的方法
    2024-12-12
  • Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法

    Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法

    這篇文章主要介紹了Spring+Vue整合UEditor富文本實(shí)現(xiàn)圖片附件上傳的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Java實(shí)現(xiàn)爬取往期所有雙色球開(kāi)獎(jiǎng)結(jié)果功能示例

    Java實(shí)現(xiàn)爬取往期所有雙色球開(kāi)獎(jiǎng)結(jié)果功能示例

    這篇文章主要介紹了Java實(shí)現(xiàn)爬取往期所有雙色球開(kāi)獎(jiǎng)結(jié)果功能,涉及Java網(wǎng)頁(yè)抓取、正則替換、文件讀寫(xiě)等相關(guān)操作技巧,需要的朋友可以參考下
    2018-07-07
  • Java中BufferedReader和BufferedWriter使用方式

    Java中BufferedReader和BufferedWriter使用方式

    這篇文章主要介紹了Java中BufferedReader和BufferedWriter使用方式,F(xiàn)ileWriter?類(lèi)從?OutputStreamWriter?類(lèi)繼承而來(lái),BufferedReader?類(lèi)從字符輸入流中讀取文本并緩沖字符,以便有效地讀取字符,數(shù)組和行
    2022-06-06
  • Java圖片壓縮三種高效壓縮方案詳細(xì)解析

    Java圖片壓縮三種高效壓縮方案詳細(xì)解析

    圖片壓縮通常涉及減少圖片的尺寸縮放、調(diào)整圖片的質(zhì)量(針對(duì)JPEG、PNG等)、使用特定的算法來(lái)減少圖片的數(shù)據(jù)量等,這篇文章主要介紹了Java圖片壓縮三種高效壓縮方案的相關(guān)資料,需要的朋友可以參考下
    2025-04-04
  • 淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源

    淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源

    下面小編就為大家?guī)?lái)一篇淺談java7增強(qiáng)的try語(yǔ)句關(guān)閉資源。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06

最新評(píng)論