仅按字符串

时间:2015-11-25 12:07:40

标签: java

我无法在标题中解释自己,我的意思是 - 获取一个字符串并检查每个字母并打印它,如果字符串中的下一个字符也是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);
        }
    }
}

我应该纠正什么?

1 个答案:

答案 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;
        }
    }