首页 > Java > Java中的split() replace() replaceFirst() replaceAll()四个函数分析

Java中的split() replace() replaceFirst() replaceAll()四个函数分析

2014年10月20日 发表评论 阅读评论

前几天在公司分割一个很简单字符串,结果却怎么测都不对,最后查了一下资料,终于发现了端倪:
split(regex);

replace(target, replacement);
replace(oldChar, newChar);

replaceFirst(regex, replacement);

replaceAll(regex, replacement)

仔细看一下,你会发现split()、replaceFirst()、replaceAll()的参数都是Regular Expression,也就是正则表达式,只有replace()的参数是字符或者字符串,由于这些参数类型的差异,很有将得不到预期的结果,下面是一些测试代码的例子,大家可以自己测一下


package cn.bridgeli.stringtest;
import org.junit.Test;


public class StringTest {

    @Test
    public void testSplit1() {
        String str = "111|222|333|444";
        String[] result = str.split("|");
        for (String string : result) {
            System.out.println(string);
        }

        // String str = "111|222|333|444";
        // String[] result = str.split("\|");
        // for (String string : result) {
        // System.out.println(string);
        // }
    }

    @Test
    public void testSplit2() {
        String str = "111,222,333,444";
        String[] result = str.split("\d");
        for (String string : result) {
            System.out.println(string);
        }

        // String str = "111\222\333\444";
        // String[] result = str.split("\\");
        // for (String string : result) {
        // System.out.println(string);
        // }
    }

    @Test
    public void testSplit3() {
        String str = "111222333444";
        String[] result = str.split("\");
        for (String string : result) {
            System.out.println(string);
        }

        // String str = "111\222\333\444";
        // String[] result = str.split("\\");
        // for (String string : result) {
        // System.out.println(string);
        // }
    }

    @Test
    public void testReplaceAll() {
        String str = "111,222,333,444";
        String result = str.replaceAll(",", "$");
        System.out.println(result);

        // String str = "111,222,333,444";
        // String result = str.replaceAll(",", "\$");
        // System.out.println(result);
    }

}

分享到:
作 者: BridgeLi,http://www.bridgeli.cn/
原文链接:https://www.bridgeli.cn/archives/99
版权声明:非特殊声明均为本站原创作品,转载时请注明作者和原文链接。
分类: Java 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.