Как заменить все символы в строке, кроме определенного символа? - PullRequest
0 голосов
/ 27 ноября 2018
public class HelloWorld {
    public static void main(String []args) {
        //replace all char to 1 other then c and g
        String str = "abcdefghijklmnopqrstuvwxyz";
        if (str == null || str.length() == 0) {
            return;
        }
        String answer = str.replaceAll("[^cg]+", "1");
        System.out.println(answer);
    }
}
  • Токовый выход: 1c1g1
  • Требуемый выход: 11c111g111111111111111111

1 Ответ

0 голосов
/ 27 ноября 2018

Теперь здесь я получаю вывод как 1c1g1, но мне нужно 11c111g111111111111111111

Удалите +.Там написано «соответствует одному или нескольким предыдущим», но вы заменяете эту серию совпадающих символов на один 1.

Итак:

public class HelloWorld {

    public static void main(String []args){
        //replace all char to 1 other then c and g
        String str = "abcdefghijklmnopqrstuvwxyz";
        if (str == null || str.length() == 0) {
            return;
        }
        String answer = str.replaceAll("[^cg]", "1");
        // No + here ------------------------^
        System.out.println(answer);
    }
}

Live Copy

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