2

我有一个巨大的字符串,看起来像:

widgets: '{some-really-huge-string-omitted-for-brevity}'

我想删除单引号,以便得到:

widgets: {some-really-huge-string-omitted-for-brevity}

实际上,some-really-huge-string-omitted-for-brevity是一个包含字母数字字符、标点符号的巨大字符串,基本上是所有东西。到目前为止我最好的尝试:

bigString = bigString.replaceAll("widgets: '\\{*\\}'", "widgets: \\{*\\}");

不会抛出任何异常/错误,但也不会改变任何事情!当我打印bigString时,它仍然和替换之前一样!有任何想法吗?提前致谢。

4

3 回答 3

1
String str = "widgets: '{some-really-huge-string-omitted-for-brevity}'";
System.out.println (str.replaceAll ("'([^']*)'", "$1"));
于 2013-02-15T13:31:58.000 回答
1
string= string.replace("'", "");

如果您想删除任何内容周围的所有单引号,请尝试上面的代码。

string= string.replace("'{", "{").replace("}'","}");

如果要在打开大括号“{”和关闭大括号“}”之前删除单引号。

于 2013-02-15T13:33:09.410 回答
1

如果引号总是在那些地方。(即字符串的第 9 个和最后一个字符),然后只需使用子字符串来修剪和重新加入。扫描整个字符串会很慢而且毫无意义。

修剪后的字符串 = hugeString.substring(0, 9) + hugeString.substring(10, hugeString.length() - 1);

更新

看到您接受了这个答案,这可能是一个更有效的版本:

StringBuilder b = new StringBuilder(hugeString);
b.deleteCharAt(9);
b.deleteCharAt(b.length() - 1);
字符串修剪 = b.toString();
于 2013-02-15T13:34:09.363 回答