簡體   English   中英

如何在字符串中查找和替換'['?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM