无法替换String中的多个字符

Ril*_*low -1 java string

我有一个字符串,我想用其他一些字符替换所有出现的字符,例如,

这是我的段落,

bv xfeu xeelppuq vx t eupvtbf obfc, vktv bi ku twztds ofuz vku pbckv
vbnu vx hucbf uaupdvkbfc; bi ku ofuz zkx zupu vku pbckv juxjwu vx
wbsvuf vx, tfq zkxn vx taxbq; tfq, thxau tww, bi ku twztds ofuz zktv
zts vku nxsv bnjxpvtfv vkbfc vx qx, ku zxlwq fuaup itbw bf tfdvkbfc
ku nbckv lfqupvtou.
Run Code Online (Sandbox Code Playgroud)

这是另一个String(String1) ETAONRISHDLFCMUGYPWBVKJXQZ

这是第3个字符串(String2) UVXFTKBSQPZNLCWDEIJHOAMGYR

我想要做的是逐个选择一个字符,String1并用String2我段落中的一个字符替换它.

例如,

所有E必须用U段落替换,所有都T应该替换为V依此类推.出于这个原因,我编写了以下程序,

String paragraph = "bv xfeu xeelppuq vx t eupvtbf obfc, vktv bi ku twztds ofuz vku pbckv
    vbnu vx hucbf uaupdvkbfc; bi ku ofuz zkx zupu vku pbckv juxjwu vx
    wbsvuf vx, tfq zkxn vx taxbq; tfq, thxau tww, bi ku twztds ofuz zktv
    zts vku nxsv bnjxpvtfv vkbfc vx qx, ku zxlwq fuaup itbw bf tfdvkbfc
    ku nbckv lfqupvtou."

String s1 = "ETAONRISHDLFCMUGYPWBVKJXQZ"
String s2 = "UVXFTKBSQPZNLCWDEIJHOAMGYR"
Run Code Online (Sandbox Code Playgroud)

现在我像这样替换他们,

for (int x = 0; x < 26; x++) {
                    paragraph = paragraph.replace(s1.charAt(x), s2.charAt(x));
                }
Run Code Online (Sandbox Code Playgroud)

所有Eparagraph应替换U,全部TV等,但在此之前和之后的for循环的输出是一样的.

我究竟做错了什么 ?

T.J*_*der 5

中的字符paragraph小写.中的字符s1s2与此相反,是在上壳体.e并且E不是相同的字符,因此在搜索时replace找不到并替换.eE

如果您在人物s1s3较低的情况下,它的工作原理:

实时复制

String paragraph = "bv xfeu xeelppuq vx t eupvtbf obfc, vktv bi ku twztds ofuz vku pbckv vbnu vx hucbf uaupdvkbfc; bi ku ofuz zkx zupu vku pbckv juxjwu vx wbsvuf vx, tfq zkxn vx taxbq; tfq, thxau tww, bi ku twztds ofuz zktv zts vku nxsv bnjxpvtfv vkbfc vx qx, ku zxlwq fuaup itbw bf tfdvkbfc ku nbckv lfqupvtou.";

String s1 = "etaonrishdlfcmugypwbvkjxqz";
String s2 = "uvxftkbsqpznlcwdeijhoamgyr";
for (int x = 0; x < 26; x++) {
    paragraph = paragraph.replace(s1.charAt(x), s2.charAt(x));
}
System.out.println(paragraph);
Run Code Online (Sandbox Code Playgroud)

或者,当然,将字符paragraph设为大写.