我有一个大的字符串文件(原来是geojson),我需要在我的android项目中使用它之前纠正。
我解释一下:我已经将shapefile转换为geojson文件,但转换器做错了。他为坐标设置了一个双数组,并且android无法解析它。
{
"type": "Feature",
"properties": {
"id": 00001,
"poi": "cinemas",
"other": "null"
},
"geometry": {
"type": "MultiPoint",
"coordinates": [
[ // here is the unwanted character #1
7.0000000000000,
48.0000000000000
] // here is the unwanted character #2
]
}
}
如何生成一个删除第11行和第11行的正确字符串14,这个字符串中的每个Json对象?
我试过了,但没有工作:
string[] x = myJsonString.Split('\n');
x.Remove(x.LastIndexOf(Environment.NewLine)-4);
x.Remove(x.LastIndexOf(Environment.NewLine)-7);
我的方式错了吗?或者StringBuilder可以做到吗?提前谢谢!
答案 0 :(得分:1)
您可以使用Regular Expression及其grouping feature。
// Define your RegEx
Pattern p = Pattern.compile("\\[.*(\\[.*\\]).*\\]");
// Apply this RegEx on your raw string
Matcher m = p.matcher(your_raw_string);
// A container for output string
StringBuffer s = new StringBuffer();
// Iterate over each occurrence of the substring
while (m.find()) {
// Append to the output and replace each occurrence with group #1
m.appendReplacement(s, m.group(0));
}
// Your desired text!
System.out.println(s.toString());
答案 1 :(得分:0)
尝试:
myString = Regex.Replace(myString, "[( )*[", "[");
myOtherString = Regex.Replace(myOtherString, "]( )*]", "]");
答案 2 :(得分:0)
使用正则表达式replaceAll:
myJsonString = myJsonString.replaceAll("([\\[\\]])[\\s\\n]+?(?=\\1)", "");