您好,我在理解以下代码时遇到问题。
public static void main(String[] args) {
String vstup = "DEN DOBRY";
String vystup = "";
int i = 2;
do {
vystup = vystup + vstup.charAt(i);
i++;
} while (vystup.charAt(0)>=vstup.charAt(i));
System.out.println(vystup);
}
为什么这个打印出“N D”?
第二个:
public static void main(String[] args) {
String vstup = "Mama má emu.";
String vystup = "";
for (int i = 0;i<vstup.length();i++)
if ((i % 3) == 1) vystup = vystup.concat(vstup.substring(i, i+2));
System.out.println(vystup);
}
为什么这个打印出“am me eu。”?
答案 0 :(得分:0)
第一种情况的示例输入:ZYXWV
do {
vystup = vystup + vstup.charAt(i);
i++;
} while (vystup.charAt(0) >= vstup.charAt(i)); // i can get invalid
第二种情况的输入示例:ab
if ((i % 3) == 1) vystup = vystup.concat(vstup.substring(i, i+2)); // i + 2 can be invalid index
i = 2
0
th 索引),则重复步骤 2>=
,比较代码点(字符的数值)1
索引)开始,选择 2 个相邻的字符(第 2 个和第 3 个字符)str: M a m a m á e m u .
index: 0 1 2 3 4 5 6 7 8 9 10 11
i%3==1 i i+1 i i+1 i i+1 i i+1
希望对你有帮助。