カッコ()の二重引用符をStringBufferと正規表現で置換

904 ワード

String str = "{\"a\":\"A\",\"b\":\"@java.lang.Integer@parseInt(str.substring(1\",\"string.length()-1))\"}"; 
        //        
		Pattern p = Pattern.compile("\\((.*)\\)"); 
		Matcher m = p.matcher(str); 
		String temp = null;
		StringBuffer sb = new StringBuffer();
		//    
		while(m.find()){
			//           
			temp = "("+m.group(1)+")";
			//               
			temp = temp.replace("\"", "");
			//temp       ,            temp,                        ,               sb ,          ,           
			m.appendReplacement(sb, temp);
		 }
		 //              sb    
		m.appendTail(sb);
		//m.appendReplacement m.appendTai    ,             
		System.out.println(sb.toString());

最後の出力:{“a”:“A”,“b”:“@java.lang.Integer@parseInt(str.substring(1,string.length()-1))"}
問題解決コードの転載説明