在java中,如何在字符串的字符两侧添加空格?
在java中,如何在字符串的字符两侧添加空格 例如,假设字符串为“在java中,如何在字符串的字符两侧添加空格?,java,string,Java,String,在java中,如何在字符串的字符两侧添加空格 例如,假设字符串为“s_id=5和s_name!=6”,如果我想在=的两侧添加空格,那么输出字符串将类似于“s_id=5和s_name!=6” 我正在尝试使用替换和包含方法 我检查是否(str.contains(“=”),然后将其替换为(“=”),但它也为添加了空间=您可以使用String类中的replaceAll()方法来帮助实现这一点 value = value.replaceAll("([$_\\d\\w])([^$_\\d\\w]+)", "
s_id=5和s_name!=6
”,如果我想在=
的两侧添加空格,那么输出字符串将类似于“s_id=5和s_name!=6
”
我正在尝试使用替换和包含方法
我检查
是否(str.contains(“=”)
,然后将其替换为(“=”
),但它也为添加了空间=
您可以使用String
类中的replaceAll()
方法来帮助实现这一点
value = value.replaceAll("([$_\\d\\w])([^$_\\d\\w]+)", "$1 $2")
.replaceAll("([^$_\\d\\w]+)([$_\\d\\w])", "$1 $2")
.replaceAll("\\s+", " "))
例如:
final String spacedEquals = " = ";
String s = "s_id=5 and s_name!=6";
//this will add a space on either side of the '='
s.replaceAll("=", spacedEquals);
希望这有帮助试试这个方法
private String replace( String str, String pattern, String replace )
{
int s = 0;
int e = 0;
StringBuffer result = new StringBuffer();
while ( (e = str.indexOf( pattern, s ) ) >= 0 )
{
result.append(str.substring( s, e ) );
result.append( replace );
s = e+pattern.length();
}
result.append( str.substring( s ) );
return result.toString();
}
使用正则表达式:
s = s.replaceAll("(?<![><!+-])[=]", " = ");
s=s.replaceAll((?)?
此代码将向任何运算符添加分隔符,并删除不必要的空格
s_id=5和s_name!=6
将变成s_id=5和s_name!=6
考虑到变量可以由$数字或字母组成,您需要在添加空格的字符之后/之前决定。您应该指定在=
之前应忽略哪些其他字符,例如,决定是=
还是请更新您的问题,因为您的问题误导读者相信您确实需要字符串替换,而这是基于规则的替换。具体将有助于获得更具体的答案。从传统上讲,请提供在“替换”前后添加空格的完整标准=“。从您的示例来看,您的规则似乎是任意的,您能更具体一点吗?目标是在字符串(=,!=)中每个运算符的两侧添加空格。当我检查字符是否为=,我会添加空格,但也会为!=添加空格。因为它还包含=这是我要解决的问题,我想为严格相同的字符添加空格…希望现在它更具体..不,它不起作用..代码的输出类似于:s_id=5和s_name!=6 I.e.它为!=也…谢谢…它解决了我的问题..但我对正则表达式知之甚少。你能给正则表达式一个区分>=和>的方法吗?意思是如果我想在>=的两边都添加空格,那么当你想在较长的字符串周围添加空格而忽略较短的字符串时,它不应该在>的情况下添加当然,您可以完全避免使用正则表达式:您可以调用s.replaceAll(“>=”,“>=”)
,当它们不在一起时,它将忽略
和=
。学习正则表达式是一件好事,从它开始就好了。@dasblinkenlight这里您给出了忽略+,和!等的示例。如果我也想忽略“before=?@Sam:试试这本书或其他任何一本书”正则表达式”的标题和良好的评论。