如何在java中添加字符串字符两边的空格?

时间:2012-01-07 05:10:31

标签: java string

如何在java中的字符串字符的两边添加空格?

例如,假设字符串为“s_id=5 and s_name!=6”,如果我想在=的两边添加空格,则输出字符串将类似于“s_id = 5 and s_name!=6

我正在尝试使用replace和contains方法......

我检查if(str.contains("="))然后将其替换为(" = "),但它也为!=添加了空间。

4 个答案:

答案 0 :(得分:1)

使用正则表达式:

s = s.replaceAll("(?<![><!+-])[=]", " = ");

在正则表达式的方括号之间放置您不想要的字符=。答案中的表达式忽略+=-+<=<=!=

答案 1 :(得分:1)

value = value.replaceAll("([$_\\d\\w])([^$_\\d\\w]+)", "$1 $2")
             .replaceAll("([^$_\\d\\w]+)([$_\\d\\w])", "$1 $2")
             .replaceAll("\\s+", " "))

此代码将向任何运算符添加分隔符,并删除不必要的空格。

s_id=5 and s_name!=6将成为s_id = 5 and s_name != 6

考虑到变量可以由 $ _ 数字字母

组成

答案 2 :(得分:0)

您可以使用replaceAll()类中的String方法来帮助实现此目标

示例:

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

希望这会有所帮助

答案 3 :(得分:0)

尝试这种方法

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