如何在StringBuilder中删除行X和Y

本文关键字:删除行 StringBuilder | 更新日期: 2023-09-27 17:52:49

我有一个大字符串文件(原来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行&

我尝试了这个,但不工作:

string[] x = myJsonString.Split(''n');
x.Remove(x.LastIndexOf(Environment.NewLine)-4);
x.Remove(x.LastIndexOf(Environment.NewLine)-7);
我走错路了吗?或者StringBuilder可以做到这一点?

如何在StringBuilder中删除行X和Y

你可以使用正则表达式和它的分组特性。

// 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());

引用
关于在Java中使用RegEx的更多信息

try:

myString = Regex.Replace(myString, "[( )*[", "[");
myOtherString = Regex.Replace(myOtherString, "]( )*]", "]");

使用正则表达式replaceAll:

myJsonString = myJsonString.replaceAll("([''['']])[''s''n]+?(?=''1)", "");

演示。