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

關(guān)于replaceFirst使用時(shí)的注意事項(xiàng)

 更新時(shí)間:2022年03月03日 11:45:35   作者:_shampoo_  
這篇文章主要介紹了關(guān)于replaceFirst使用時(shí)的注意事項(xiàng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

replaceFirst使用時(shí)的注意事項(xiàng)

公司項(xiàng)目最近有一個(gè)開發(fā)填空題的需求,經(jīng)過思索和分析,決定通過SpannableString來(lái)實(shí)現(xiàn),在這個(gè)過程中

replaceFirst給了我兩個(gè)坑:

坑一

通過UnderlineSpan在填空位置畫下劃線,并通過ClickableSpan 給填空處設(shè)置監(jiān)聽,點(diǎn)擊下滑線處便呼出帶有輸入框的對(duì)話框輸入內(nèi)容之后替換到空格處

由于UnderlineSpan對(duì)空格加下劃線在部分手機(jī)上實(shí)現(xiàn)不了,于是在填空位置首尾加上一對(duì)括號(hào)

在將輸入值賦到空處出現(xiàn)問題

例如:

content  =  我是##人,我愛##;firstValue = 中國(guó) ;經(jīng)歷以下代碼之后:

content = content.replaceFirst(YHAnswer.SEPARATOR, “(”+fisrtValue+")");

content 變成了  我是(中國(guó)人,我愛##);預(yù)期值是  我是(中國(guó))人,我愛##

這不知道算不算一個(gè)bug,我研究了好久,以為是括號(hào)造成的,換成別的符號(hào)甚至漢字還是如此,但不加括號(hào)卻是正常的,

最后發(fā)現(xiàn)原因是后面這個(gè)參數(shù)是拼接的,改成下面這樣就沒問題了

String before = "("+fisrtValue+")";
content = content.replaceFirst(YHAnswer.SEPARATOR, before);

坑二

在輸入過程中,難免會(huì)輸入特殊符號(hào),當(dāng)輸入$號(hào)時(shí),經(jīng)過replaceFirst后$  號(hào)就不見了

例如:

content  =  我是##人,我愛##;firstValue = 中$$國(guó) ;經(jīng)歷以下代碼之后:

String before = "("+fisrtValue+")";
content = content.replaceFirst(YHAnswer.SEPARATOR, before);

content 變成了  我是(中國(guó))人,我愛##);預(yù)期值是  我是(中$$國(guó))人,我愛##

如果需求允許,可以直接屏蔽$,如果不允許則需要添加轉(zhuǎn)義字符;

String類的replaceFirst方法不好用的原因

今天正好用String的replace方法來(lái)替換下面的AND,結(jié)果發(fā)現(xiàn)怎么樣都不好用,隨即作了一下試驗(yàn),

代碼一

String str = new String("AND AAE112"); ?
str.replaceFirst("AND","");
System.out.println(str);

AND AAE112

代碼二

String str = new String("AND AAE112"); ?
String out = str.replaceFirst("AND","");
System.out.println(out);

?AAE112

可以看出,代碼二的結(jié)果是正確的,可見replaceAll并不會(huì)改變?cè)械膕tr,這和PB和PL/SQL是不同的。原因應(yīng)該是str指向的是一個(gè)地址。 

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • SWT(JFace) 打印功能

    SWT(JFace) 打印功能

    SWT(JFace)體驗(yàn)之打印功能
    2009-06-06
  • springboot+jersey+tomcat實(shí)現(xiàn)跨域方式上傳文件到服務(wù)器的方式

    springboot+jersey+tomcat實(shí)現(xiàn)跨域方式上傳文件到服務(wù)器的方式

    這篇文章主要介紹了springboot+jersey+tomcat實(shí)現(xiàn)跨域方式上傳文件到服務(wù)器,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • SpringBoot整合Shiro的代碼詳解

    SpringBoot整合Shiro的代碼詳解

    shiro是一個(gè)權(quán)限框架,它提供了很方便的權(quán)限認(rèn)證和登錄的功能.下面通過本文給大家分享SpringBoot整合Shiro的代碼詳解,需要的的朋友參考下吧
    2017-08-08
  • 如何使用IDEA新建一個(gè)普通的Javaweb項(xiàng)目

    如何使用IDEA新建一個(gè)普通的Javaweb項(xiàng)目

    今天給大家普及如何使用IDEA新建一個(gè)普通的Javaweb項(xiàng)目及配置tomcat的方法,在文末給大家提到如果不想每次都重啟tomcat,可以設(shè)置快捷方式,對(duì)idea新建Javaweb項(xiàng)目感興趣的朋友一起看看吧
    2021-06-06
  • 詳解Java序列化機(jī)制

    詳解Java序列化機(jī)制

    這篇文章主要介紹了Java序列化機(jī)制的相關(guān)資料,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-12-12
  • Java Validation方法入?yún)⑿r?yàn)實(shí)現(xiàn)過程解析

    Java Validation方法入?yún)⑿r?yàn)實(shí)現(xiàn)過程解析

    這篇文章主要介紹了Java Validation方法入?yún)⑿r?yàn)實(shí)現(xiàn)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • SpringBoot中整合Shiro實(shí)現(xiàn)權(quán)限管理的示例代碼

    SpringBoot中整合Shiro實(shí)現(xiàn)權(quán)限管理的示例代碼

    這篇文章主要介紹了SpringBoot中整合Shiro實(shí)現(xiàn)權(quán)限管理的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java單例模式和多例模式實(shí)例分析

    Java單例模式和多例模式實(shí)例分析

    這篇文章主要介紹了Java單例模式和多例模式,結(jié)合實(shí)例形式分析了java單例模式與多例模式的定義及使用技巧,需要的朋友可以參考下
    2019-07-07
  • 什么是遞歸?用Java寫一個(gè)簡(jiǎn)單的遞歸程序

    什么是遞歸?用Java寫一個(gè)簡(jiǎn)單的遞歸程序

    這篇文章主要介紹了什么是遞歸?用Java寫一個(gè)簡(jiǎn)單的遞歸程序,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • redis?redisTemplate數(shù)據(jù)類型基礎(chǔ)操作

    redis?redisTemplate數(shù)據(jù)類型基礎(chǔ)操作

    這篇文章主要介紹了redis?redisTemplate數(shù)據(jù)類型基礎(chǔ)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論