需要找到两个字符之间的区别(字母是循环的)

时间:2016-09-03 11:34:46

标签: java string

给定一个字符串"azza"。在此a-z = 25z-z = 0z-a = 25中。但由于字母表是循环的,我需要在'a'之后'z',即上面的字符串z-a = 1

对于我们没有遇到的正常字符串' a'就在' z'之后,我的代码就是这个

class TestClass {
    public static void main(String args[] ) throws Exception {
        Scanner sc = new Scanner(System.in);
        int i;
        int t = sc.nextInt();
        sc.nextLine();

        for(i=0;i<t;i++)
        {
            String  s =sc.nextLine();
            char[] string =s.toCharArray();
            for(i=0;i<string.length;i++)
            {
                if((string[i]-string[i+1])==1 || (string[i]-string[i+1])==-1)
                {
                       System.out.println("1");
                }                   
            }               
        }
    }
}

1 个答案:

答案 0 :(得分:2)

首先,反向减法:当您需要在方案中计算z-a时,请计算'a'-'z',反之亦然。

这样你有时会得出负面结果。发生这种情况时,请为其添加26。这将起到“盘旋”的作用。

char first = 'a';
char last = 'z';
int diff = first - last; // negative 25
if (diff < 0) {
    diff += 26;
}

Demo.