如何解决如何删除第一次出现特定字符周围的空格?
如何去除特定字符前后的空格?我还想仅在第一次出现特定字符时删除空格。在下面的示例中,我想删除第一次出现 =
前后的空格。
例如对于那些字符串:
something = is equal to = something
something = is equal to = something
something =is equal to = something
我需要得到这个结果:
something=is equal to = something
是否有任何我可以使用的正则表达式,或者我应该检查第一次出现字符 =
的索引?
解决方法
private String removeLeadingAndTrailingWhitespaceOfFirstEqualsSign(String s1) {
return s1.replaceFirst("\\s*=\\s*","=");
}
注意这匹配所有空格,包括制表符和换行符,而不仅仅是空格。
,您可以使用正则表达式 \w*\s*=\s*
获取所有匹配项。从那里调用 trim 匹配数组中的第一个索引。
是的 - 您可以创建一个匹配可选空格的正则表达式,后跟您的模式,后跟可选的空格,然后替换第一个实例。
public static String replaceFirst(final String toMatch,final String forIP) {
// string you want to match before and after
final String quoted = Pattern.quote(toMatch);
final Pattern patt = Pattern.compile("\\s*" + quoted + "\\s*");
final Matcher match = patt.matcher(forIP);
return match.replaceFirst(toMatch);
}
对于您的输入,这给出了预期的结果 - 假设 toMatch 是 =
。它也适用于任意更大的事物 - 例如......想象给予“等于”而不是......得到
something =is equal to= something
对于简单的情况,您可以忽略引用,对于任意情况,它都有帮助(尽管作为 many contributors have pointed out before Pattern.quoting 并不适用于所有情况。
简单的情况就变成了
return forIP.replaceFirst("\\s*" + forIP + "\\s*",forIP);
或
return forIP.replaceFirst("\\s*=\\s*","=");
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。