亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

replaceFirst使用時的注意事項有哪些

發布時間:2022-03-02 12:29:25 來源:億速云 閱讀:139 作者:小新 欄目:開發技術

這篇文章主要介紹了replaceFirst使用時的注意事項有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

replaceFirst使用時的注意事項

公司項目最近有一個開發填空題的需求,經過思索和分析,決定通過SpannableString來實現,在這個過程中

replaceFirst給了我兩個坑:

坑一

通過UnderlineSpan在填空位置畫下劃線,并通過ClickableSpan 給填空處設置監聽,點擊下滑線處便呼出帶有輸入框的對話框輸入內容之后替換到空格處

由于UnderlineSpan對空格加下劃線在部分手機上實現不了,于是在填空位置首尾加上一對括號

在將輸入值賦到空處出現問題

例如:

content  =  我是##人,我愛##;firstValue = 中國 ;經歷以下代碼之后:

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

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

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

最后發現原因是后面這個參數是拼接的,改成下面這樣就沒問題了

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

坑二

在輸入過程中,難免會輸入特殊符號,當輸入$號時,經過replaceFirst后$  號就不見了

例如:

content  =  我是##人,我愛##;firstValue = 中$$國 ;經歷以下代碼之后:

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

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

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

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

今天正好用String的replace方法來替換下面的AND,結果發現怎么樣都不好用,隨即作了一下試驗,

代碼一

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

可以看出,代碼二的結果是正確的,可見replaceAll并不會改變原有的str,這和PB和PL/SQL是不同的。原因應該是str指向的是一個地址。 

感謝你能夠認真閱讀完這篇文章,希望小編分享的“replaceFirst使用時的注意事項有哪些”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

淳化县| 涡阳县| 刚察县| 霍山县| 深州市| 雷山县| 灌云县| 黄大仙区| 京山县| 泗洪县| 桐梓县| 来凤县| 英吉沙县| 邹城市| 镇安县| 平阳县| 洛宁县| 浠水县| 湖北省| 石屏县| 山西省| 永和县| 南安市| 永嘉县| 溧阳市| 奉化市| 江源县| 清水河县| 喀什市| 中卫市| 乐至县| 兰考县| 陇西县| 开阳县| 喀喇沁旗| 金塔县| 封丘县| 江孜县| 凌海市| 思茅市| 张家川|