ppgjx 发表于 2022-4-14 16:20

java 字符串如何取中间文本

比如   qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd


我想要去除aaa 和 bbb的中间文本 而且aaabbb也要去掉 结果是这样的 这种怎么写呢?
qwesagnkansdqweqweqasfjasdasd

移情√似水 发表于 2022-4-14 16:26

先搜索aaa获得索引,再搜索bbb获得索引,最后就是前后字符串拼一下就好了

qq58452077 发表于 2022-4-14 16:33

int index_1 = str.indexOf("aaa");
int index_2 = str.indexOf("bbb");
str = str.substring(0, index_1)+str.substring(index_2+1 , str.length())

小年轻在奋斗 发表于 2022-4-14 16:36

    String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
      Pattern pattern = Pattern.compile("aaa.*bbb");
      Matcher matcher = pattern.matcher(str);
      if (matcher.find()){
            str = matcher.replaceAll("");
      }
      System.out.println(str);
    }

yoyoflash 发表于 2022-4-14 16:43

本帖最后由 yoyoflash 于 2022-4-14 16:48 编辑

代码:
package com.example.demo;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegDemo {
    public static void main(String[] args) {
      //正则表达式
      String reg = "aaa.*bbb";
      //要匹配的字符
      String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
      //进行匹配
      Pattern pattern = Pattern.compile(reg);
      Matcher matcher = pattern.matcher(str);
      String result = matcher.replaceAll("");
      System.out.println("替换前:\t" + str);
      System.out.println("替换后:\t" + result);

    }
}

输出结果:
替换前: qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd
替换后: qwesagnkansdqweqweqasfjasdasd

ft9674071 发表于 2022-4-14 16:49

先找到两个坐标,然后操作字符串。
用正则表达式也行

Yxlhsx 发表于 2022-4-14 16:56

写正则匹配,或者匹配特定字符拿起始下标去截取

若无zz 发表于 2022-4-14 17:08

五花八门的写法

回忆童年快乐 发表于 2022-4-14 17:37

本帖最后由 回忆童年快乐 于 2022-4-14 17:38 编辑


      String str = "qwesagnkansdqweaaaweqweqrqwerqbbbqweqasfjasdasd";
      String replace = str.replaceAll("aaa(.*)bbb", "");

xiadongming 发表于 2022-4-14 19:29

页: [1]
查看完整版本: java 字符串如何取中间文本