java 查找、替换

     在工作中经常用到的查找替换方式是String的replace、replaceAll。不过配合使用Pattern、Matcher、StringBuffer可以实现更灵活的替换。代码如下,重点看一下“动态替换”。

import static org.junit.Assert.*;

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

import org.junit.Test;

/**
 * java查找替换
 * 
 * @author wei.ss
 * 
 */
public class JavaSearchReplace {

    @Test
    public void test() {

        // String的替换方法
        String content = "aaaaa";

        // 替换第一个,第一个参数支持正则表达式
        assertEquals("baaaa", content.replaceFirst("a", "b"));
        assertEquals("baaaa", content.replaceFirst("[a-z]", "b")); // 正则表达式

        // 按字符替换: 替换所有查找到的字符。显然第一个参数不支持正则表达式
        assertEquals("bbbbb", content.replace('a', 'b'));
        // 按字符串替换:替换所有查找到的字符串,第一个参数不支持正则表达式。
        assertEquals("bbbbb", content.replace("a", "b"));

        // 替换所有:和replace(String, String)方法不同的是,replaceAll第一个参数还支持正则表达式
        assertEquals("bbbbb", content.replaceAll("a", "b"));
        assertEquals("bbbbb", content.replaceAll("\\w", "b")); // 正则表达式

        
        // 重点注意一下:动态替换。
        // 需求是:将所有查找到的a字母依次替换为1,2,3,依次类推,最后的结果应该是"xxxxx1xx2345xx6yyy"
        content = "xxxxxaxxaaaaxxayyy";
        String expected = "xxxxx1xx2345xx6yyy"; // 期望的结果
        StringBuffer sb = new StringBuffer();
        Pattern p = Pattern.compile("a");
        Matcher m = p.matcher(content);
        int i = 1;
        while (m.find()) {
            m.appendReplacement(sb, i++ + "");
        }
        m.appendTail(sb); // 把字符串的尾部也附加上,不然"yyy"将会丢失。

        // 验证结果
        assertEquals(expected, sb.toString());
    }
}


转载于:https://my.oschina.net/u/2007041/blog/512782

### Java中用于查找替换操作的快捷键 在Java开发中,使用IDE(如IntelliJ IDEA)进行代码查找替换是常见的操作。以下是一些常用的快捷键组合,帮助开发者高效完成这些任务: #### 1. 查找操作 - **当前文件内查找**:使用快捷键 `Ctrl + F` 可以在当前文件或类中快速查找指定内容[^1]。 - **全局查找**:通过快捷键 `Shift + Shift`,可以快速查找项目中的类、文件或符号。 - **查找上次访问的文件**:使用快捷键 `Ctrl + E` 可以查看最近访问的文件列表,并快速跳转到目标文件[^1]。 #### 2. 替换操作 - **当前文件内替换**:使用快捷键 `Ctrl + R`,可以在当前文件中执行查找替换的操作。 - **批量替换**:如果需要对多行或多列的数据进行统一修改,可以启用列选中模式。具体方法是选中代码后,右键选择【Column Selection Mode】,或者直接使用快捷键 `Alt + 鼠标键` 进行多行编辑[^3]。 #### 3. 其他相关快捷键 - **撤销与重做**:使用快捷键 `Ctrl + Z` 撤销上一步操作,使用 `Ctrl + Shift + Z` 重做已撤销的操作。 - **代码注释**:快速注释代码行可以使用 `Ctrl + /`,而对代码块进行注释则可以使用 `Ctrl + Shift + /`。 #### 示例代码 以下是一个简单的代码示例,展示如何通过查找替换优化代码: ```java // 原始代码 public class Example { public static void main(String[] args) { int value = 0; for (int i = 0; i < 10; i++) { value += i; } System.out.println("Result: " + value); } } // 使用查找替换将变量名从"value"改为"total" public class Example { public static void main(String[] args) { int total = 0; for (int i = 0; i < 10; i++) { total += i; } System.out.println("Result: " + total); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值