我有一个巨大的字符串,如下所示:
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
时,它仍然与替换前相同!有任何想法吗?提前谢谢。
答案 0 :(得分:1)
String str = "widgets: '{some-really-huge-string-omitted-for-brevity}'";
System.out.println (str.replaceAll ("'([^']*)'", "$1"));
答案 1 :(得分:1)
string= string.replace("'", "");
如果要删除所有单引号,请尝试上面的代码。
string= string.replace("'{", "{").replace("}'","}");
如果要在打开花括号“{”并关闭花括号“}”之前删除单引号。
答案 2 :(得分:1)
如果引号总是在那些地方。 (即字符串的第9个和最后一个字符),然后只使用子字符串进行修剪和重新加入。扫描整个String会很慢而且毫无意义。
String trimmed = hugeString.substring(0, 9) + hugeString.substring(10, hugeString.length() - 1);
<强>更新强>
看到你接受了这个答案,这可能是一个更有效的版本:
StringBuilder b = new StringBuilder(hugeString); b.deleteCharAt(9); b.deleteCharAt(b.length() - 1); String trimmed = b.toString();