拆下方括号并更换为Curly Brackets

时间:2017-03-09 09:50:54

标签: java string replace

我正在尝试用大括号替换所有方括号。

示例:

"{\"test\":{\"id\":{"4,5,6"}}},{\"Tech\":{"Java,C++"}}}";

我想删除方括号([,])并用大括号({,})替换它们。

像:

string = string.replace("\\[", "\\{").replace("\\]", "\\}");

我试过了:

enum StatusShape: Int {
    case rectangle, triangle, circle
}
var statusShape: StatusShape = .rectangle
#if TARGET_INTERFACE_BUILDER
@IBInspectable var statusShapeIB: Int {
    get { 
        return statusShape.rawValue 
    }
    set { 
        guard let statusShape = StatusShape(rawValue: newValue) else { return }
        self.statusShape = statusShape
    }
}   //convenience var, enum not inspectable
#endif

但没有奏效。需要一些建议。

2 个答案:

答案 0 :(得分:3)

您不需要\\[\\{,因为您无法获得正确的结果,而是可以使用:

System.out.println(string.replace("[", "{").replace("]", "}"));

注意

您使用的是无效的字符串,您必须在\之前使用"\"",如下所示:

String string = "{\"test\":{\"id\":[\"4,5,6\"}]},{\"Tech\":[\"Java,C++\"]}}";

答案 1 :(得分:0)

你可以这样做:

str.replace('[', '{').replace(']', '}');

或者你可以这样做:

str.replaceAll("\\[", "{").replaceAll("\\]", "}");

替换使用字符,因此''而replaceAll使用正则表达式。这就是你应该逃离那里的原因。