美文网首页
某司测试工程师面试手写代码:替换字符串中的a、b为c

某司测试工程师面试手写代码:替换字符串中的a、b为c

作者: 李守俊 | 来源:发表于2017-08-19 22:21 被阅读97次
replace
package testing.interview;

/**
 * 参加某公司测试工程师面试被问到:如何替换字符串中的a、b为c
 * 
 * @author lsjun
 */
public class CharReplace {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String source = "abcabc";
        char[] from = { 'a', 'b' };
        char to = 'c';
        // 实现1
        System.out.println(replace(source, from, to));
        // 实现2
        System.out.println(replace2(source, from, to));
        // 实现3
        System.out.println(replace3(source, from, to));
    }

    private static String replace3(String source, char[] from, char to) {
        // String 的 replaceAll 方法不改变原来的值
        // replaceAll 根据正则替换
        source = source.replaceAll("[ab]", String.valueOf(to));
        return source;
    }

    private static String replace2(String source, char[] from, char to) {
        for (char c : from) {
            // String 的 replace 方法不改变原来的值
            source = source.replace(c, to);
        }
        return source;
    }

    private static char[] replace(String source, char[] from, char to) {
        char[] tmp = source.toCharArray();
        for (int i = 0; i < tmp.length; i++) {
            if (charInarray(tmp[i], from)) {
                tmp[i] = to;
            }
        }
        return tmp;
    }

    private static boolean charInarray(char c, char[] from) {
        for (char i : from) {
            if (i == c)
                return true;
        }
        return false;
    }
}

相关文章

网友评论

      本文标题:某司测试工程师面试手写代码:替换字符串中的a、b为c

      本文链接:https://www.haomeiwen.com/subject/efjxdxtx.html