Как добавить пробел с обеих сторон символа строки в Java? - PullRequest
1 голос
/ 07 января 2012

Как я могу добавить пробел с обеих сторон символа строки в Java?

Например, строка "s_id=5 and s_name!=6", и если я хочу добавить пробел с обеих сторон =, то выходная строка будет выглядеть как "s_id = 5 and s_name!=6"

Я пытаюсь использовать метод замены и содержит метод ...

Я проверяю if(str.contains("=")), затем заменяю его на (" = "), но это также добавляет место для !=.

Ответы [ 4 ]

1 голос
/ 07 января 2012
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

Учитывая, что переменные могут состоять из $ _ цифр или букв

1 голос
/ 07 января 2012

Используйте регулярное выражение:

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

Поместите символы, которые вам не нужны перед = в квадратных скобках в регулярном выражении. Выражение в ответе игнорирует +=, -+, <=, <= и !=.

0 голосов
/ 07 января 2012

попробуйте этот метод

    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();
}
0 голосов
/ 07 января 2012

Вы можете использовать метод 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); 

надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...