替换字符串中的相应字符(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一个月了,它仍然让我有点困惑,谢谢你让我知道,不过,这是一个很好的观点。