Как заменить * на <> в строке, используя java - PullRequest
0 голосов
/ 09 марта 2020

Оригинал: abc*d*ef*xyz*

После: abc<d>ef<xyz>

Я пытаюсь заменить все звезды на пару <>, используя java, я пытаюсь использовать replaceall (), но это просто заменит одну вещь. как я могу заменить в паре?

Ответы [ 2 ]

3 голосов
/ 09 марта 2020

Вы можете l oop через каждый символ и создать новую строку:

  String str ="abc*d*ef*xyz*";
   StringBuilder sb = new StringBuilder(str.length());
   char ch = '<';
   for(char c: str.toCharArray()) {
       if(c == '*') {
           c = ch;
           ch = (ch=='>'? '<': '>');
       }
       sb.append(c);
   }
   System.out.println(sb);
0 голосов
/ 09 марта 2020

Попробуйте следующее l oop:

String str = "abc*d*ef*xyz*";

char nextReplace = '<';
for(int i=0; i<str.length(); i++) {
    boolean find = false;
    if(str.charAt(i) == '*') {
        find = true;
        str = str.substring(0, i) +nextReplace +str.substring(i+1);
    }

    if(find) {
        if(nextReplace == '<') {
            nextReplace = '>';
        }else {
            nextReplace = '<';
        }
    }
}

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