[英]Swapping letters in a word (Java)
我有这个问题:
我尝试通过 i 和 j 的各种整数值来解决这个问题。 但我能找到的最合适的版本是 1 和 5。然而即使如此,输出也接近正确的版本并且不正确。 这是我的代码:
public class test {
public static void main(String[] args) {
String str = "Gateway";
int i = 1, j =5;
String first = str.substring(0, i);
System.out.println(first);
char second = str.charAt(j);
System.out.println(second);
String third = str.substring(i + 1, j -1);
System.out.println(third);
System.out.println(str.charAt(i));
System.out.println(str.substring(j + 1));
}
}
这导致输出: G a te ay
我的代码有问题还是我使用了错误的整数值? 我一直在试图弄清楚,但肯定没有帮助。 我希望有人能指出我正在做的错误。
Java 是一种从零开始的索引语言。 使用这些值:
int i = 1; // the first "a"
int j = 3; // the first "e"
substring()
的结束参数是独占的- 请参阅下面的错误修复!
为了清晰和调试能力,尝试这样编码:
String first = str.substring(0, i);
char second = str.charAt(j);
String third = str.substring(i + 1, j); // Note: corrected bug!
char fourth = str.charAt(i);
String fifth = str.substring(j + 1);
System.out.println(first + second + third + fourth + fifth);
见现场演示。
两件事情:
String third = str.substring(i + 1, j - 1);
应该
String third = str.substring(i + 1, j);
当子字符串到达第二个参数中提到的索引之前的索引时,即如果您希望子字符串包含 j-1,则必须将参数设置为 j。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.