Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换字符串中的相应字符(java)_Java_String - Fatal编程技术网

替换字符串中的相应字符(java)

替换字符串中的相应字符(java),java,string,Java,String,任务是:编写操作并返回Strings的静态函数 public static String tr(String s, String from, String to) 此方法返回一个字符串,其中s中出现在from中的所有字符都将替换为到中相应的(在相同位置)字符。为了使这一点有意义,来自的中的所有字符必须不同,并且来自的和到中的字符长度应相同。例如,如果from为“abc”,而to为“XXY”,则所有出现的“a”和“b”应替换为“X”,而“c”应替换为“Y” 结果来自 System.out.pri

任务是:编写操作并返回
String
s的静态函数

public static String tr(String s, String from, String to)
此方法返回一个
字符串
,其中
s
中出现在
from
中的所有字符都将替换为
中相应的(在相同位置)字符。为了使这一点有意义,来自的
中的所有字符必须不同,并且来自
和到
中的
字符长度应相同。例如,如果
from
为“abc”,而
to
为“XXY”,则所有出现的“a”和“b”应替换为“X”,而“c”应替换为“Y”

结果来自

System.out.println(tr(“2016年11月”、“2016年11月”、“2016年11月”、“2016年11月”、“2016年11月”);
System.out.println(tr(“abcXYZ”、“aZcX”、“|Cx”);
应分别为2016年11月和| bCxY |

这是我的密码。我甚至不能正确地编译它。谁能帮我看看吗

public static String tr(String s, String from, String to) {
    for (int i = 0; i < s.length(); i++) {
        if s.charAt(i) == from.charAt(i) {
            s = s.replace(s.charAt(i), to.charAt(i));
        }
    }
    return s;
}
公共静态字符串tr(字符串s、字符串from、字符串to){
对于(int i=0;i
您的if语句需要括号

if (s.charAt(i) == from.charAt(i))
注意已检查您的逻辑

你的逻辑应该是正确的

for (int i = 0; i < s.length(); i++) {

    int idexof = from.indexOf(s.charAt(i));
    if (idexof != -1) {
        s = s.replace(s.charAt(i), to.charAt(idexof));   
    }

}
return s;
for(int i=0;i
哦,天哪,太晚了,我们完全忽略了它。非常感谢。现在正确地编译了它,但似乎完全错了,结果如下:线程“main”java.lang.StringIndexOutOfBoundsException中的异常:字符串索引超出范围:java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)java.base/java.lang.String.charAt(String.java:709)Task07.tr(Task07.java:22)在Task07.main(Task07.java:40)非常感谢您!!!这是非常有意义的现在,我不能投票,不幸的是,由于低代表性,但将在2分钟内标记最佳答案,当我能够。再次感谢。您的for循环是个问题。当“s”的长度大于“from”或“to”时会发生什么情况?@ChristianHur是的,我刚刚计算出来,多亏了可怕的袋熊,我已经学习Java一个月了,它仍然让我有点困惑,谢谢你让我知道,不过,这是一个很好的观点。