我无法在标题中解释自己,我的意思是 - 获取一个字符串并检查每个字母并打印它,如果字符串中的下一个字符也是ABC顺序中的下一个字母,例如“almndrefg” “将返回”lmnefg“,我到目前为止所做的是:
package strings;
import java.util.Scanner;
public class P58Targil7 {
public static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
String st2 = in.next();
check(st2);
}
public static void check(String st1) {
char sec,fir;
for (int i = 0; i < st1.length() - 1; i++) {
sec = st1.charAt(i + 1);
fir = st1.charAt(i);
sec--;
if (fir == sec)
System.out.print(fir);
}
}
}
我应该纠正什么?
答案 0 :(得分:3)
你犯了一个小错误,因为你增加了sec
而不是fir
。
此外,您必须处理每个连续对中第二个字母的打印,并确保每个字母仅打印一次。
char sec,fir;
boolean lastPrinted = false;
for (int i = 0; i < st1.length() - 1; i++) {
fir = st1.charAt(i);
sec = st1.charAt(i + 1);
if (fir + 1 == sec) {
if (!lastPrinted) {
System.out.print(fir);
}
System.out.print(sec);
lastPrinted = true;
} else {
lastPrinted = false;
}
}