如何将*替换为<&燃气轮机;在字符串中使用java

如何将*替换为<&燃气轮机;在字符串中使用java,java,string,Java,String,原件:abc*d*ef*xyz* 之后:abcef 我尝试使用java将all star替换为一对,我尝试使用replaceall(),但它只替换了一件事。如何成对替换?您可以循环遍历每个字符并创建一个新字符串: String str ="abc*d*ef*xyz*"; StringBuilder sb = new StringBuilder(str.length()); char ch = '<'; for(char c: str.toCharArray()) {

原件:
abc*d*ef*xyz*

之后:
abcef


我尝试使用java将all star替换为一对,我尝试使用replaceall(),但它只替换了一件事。如何成对替换?

您可以循环遍历每个字符并创建一个新字符串:

  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);
String str=“abc*d*ef*xyz*”;
StringBuilder sb=新的StringBuilder(str.length());
字符ch=“”?“”);
}
sb.附加(c);
}
系统输出打印LN(sb);

尝试以下循环:

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);
String str=“abc*d*ef*xyz*”;

char nextReplace='您是否尝试在for循环中替换它们?两个
replaceAll()
String str=“abc*d*ef*xyz*”.replaceAll(“(\\*([a-zA-Z0-9]+)\\*”,”)如何
或仅使用
新建StringBuilder(str)
,并设置字符而不是追加字符。或者只对
toCharArray
返回的数组进行操作。至少,预先调整字符串生成器的大小。