仅替换原始String中的String

时间:2015-03-03 19:35:14

标签: java string replace

在我的程序中,我允许用户输入字符串。但是它也替换了输出中的东西,所以我想要它做的就是替换原始字符串。谢谢。

public class Crypto {
    public Crypto() {
        String s = f;
    }

    public String encrypt(String s) {

        String myString = s.replace("v", "ag\'r").replace("V", "ag\'r")
                .replace("m", "ssad").replace("M", "ssad")
                .replace("g", "jeb..w").replace("G", "jeb..w")
                .replace("b", "dug?/").replace("B", "dug?/");
        return myString;
    }

    public String decrypt(String d) {
        String myString = d.replace("ag‘,r", "v").replace("ssad", "m")
                .replace("jeb..w", "g").replace("dug>?/", "b");
        return myString;
    }

    public String d;
    public String s;
    public String f;
    public String myString;
}

1 个答案:

答案 0 :(得分:2)

String result ="";
for(char cur:s.toCharArray()){
    switch(cur){
    case 'v':
    case 'V':
        result += "ag\'r";
        break;
    case 'm':
    case 'M':
        result += "ssad";
        break;
    case 'g':
    case 'G':
        result += "jeb..w";
        break;
    case 'b':
    case 'B':
        result += "dug?/";
        break;

    default: 
        result += cur;
        break;
    }
}
return result;

我为每个循环使用了char数组,或者使用了字符串构建器:

StringBuilder result =new StringBuilder();
for(char cur:s.toCharArray()){
    switch(cur){
    case 'v':
    case 'V':
        result.append("ag\'r");
        break;
    case 'm':
    case 'M':
        result.append("ssad");
        break;
    case 'g':
    case 'G':
        result.append("jeb..w");
        break;
    case 'b':
    case 'B':
        result.append("dug?/");
        break;

    default: 
        result.append(cur);
        break;
    }
}
return result.toString();

我使用了一个char数组和一个for循环,