[英]How to find and replace '[' in a String?
我有一個字符串“ ['MET','MISSED']”。 在這里,我想將“ [[和[]]”替換為]。 我已經在我的String中使用了轉義序列
wkJsonStr.replaceAll("\"\\[","[");
和
wkJsonStr.replaceAll("\\]\"","]");
但以上方法均無效。 在“觀看”中,我編輯為
wkJsonStr.replaceAll("\"[","[");
而且有效。 但是在我的Android Studio編輯器中,不允許使用此表達式。 我正在獲取“未封閉的角色類別”。
我希望替換后的String像['MET','MISSED']。 我想單獨刪除第一個和最后一個引號,我想通過replaceAll方法實現它。
記住字符串在Java中是不可變的...
僅僅調用replace方法將不起作用,您需要分配返回值,否則將會丟失。
public static void main(String[] args) {
String wkJsonStr = "\"['MET', 'MISSED']\"";
System.out.println(wkJsonStr);
wkJsonStr = wkJsonStr.replaceAll("\"\\[", "[").replaceAll("\\]\"", "]");
System.out.println(wkJsonStr);
}
這將打印。
“ ['MET','MISSED']”
['MET','MISSED']
您可以使用replace
代替replaceAll
,但是如果您確實需要使用replaceAll
則可以執行以下操作:
wkJsonStr.replaceAll("\"\\Q[\\E","[").replaceAll("\\Q]\\E\"","]")
這里,
\\"
字面意思是"
\\\\Q
和\\\\E
之間的部分按字面意義處理。即,
\\\\Q[\\\\E
表示[
\\\\Q]\\\\E
表示]
我同意@WiktorStribiżew的評論。 您應該這樣聲明您的String:
String str = "\"['MET', 'MISSED']\""; // like this your editor will not give an error
str = str.replace("\"[","[");
str = str.replace("]\"","]");
textview.setText(str);
我終於意識到問題不在正則表達式中。 它是我正在使用的變量。 當我一一替換時,它不會將結果轉發到下一步。 所以我已經將值賦給了一個變量,現在它可以工作了。
String firstResult = wkJsonStr.replaceAll("\"\\[","[");
和
String result = firstResult.replaceAll("\\]\"","]");
為我工作。 或此步驟可以解決問題。
String result= wkJsonStr.replaceAll("\"\\[","[").replaceAll("\\]\"","]");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.