Java 需要找出两个字符之间的差异(字母表是循环的)

Java 需要找出两个字符之间的差异(字母表是循环的),java,string,Java,String,给定一个字符串,“azza”。在此a-z=25,z-z=0,z-a=25。但由于字母表是循环的,所以我需要在'z'之后加上'a',即在上面的字符串z-a=1中 对于在“z”之后没有遇到“a”的普通字符串,我的代码如下 class TestClass { public static void main(String args[] ) throws Exception { Scanner sc = new Scanner(System.in); int i;

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

对于在“
z
”之后没有遇到“
a
”的普通字符串,我的代码如下

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");
                }                   
            }               
        }
    }
}
class测试类{
公共静态void main(字符串args[])引发异常{
扫描仪sc=新的扫描仪(System.in);
int i;
int t=sc.nextInt();
sc.nextLine();

对于(i=0;i首先,反向减法:当您需要在方案中计算
z-a
时,计算
'a'-'z'
,反之亦然

这样你有时会得到一个负面的结果。当这种情况发生时,再加上26。这将起到“返回”开始的作用

char first = 'a';
char last = 'z';
int diff = first - last; // negative 25
if (diff < 0) {
    diff += 26;
}
charfirst='a';
char last='z';
int diff=first-last;//负25
如果(差异<0){
diff+=26;
}

对于输入
azza
,输出将是什么?对于字符串
azzz
什么是正确的输出?您当前的代码是否生成该输出?对于字符串
azza
什么是正确的输出?基本上您还没有告诉我们足够的信息来开始帮助您。请仔细考虑您想要向我们提出的要求,然后尝试一个解决方案d尽可能清楚地提问,为我们提供回答问题所需的所有信息。学习如何提出好的问题是一项关键的生活技能,也是任何技术工作的一项要求。事实上,OP期望a-z=25和z-a=1,你的建议给出了opposite@NicolasFilotto这是我回答的第一句话。当他来的时候把
z-a
放在他的符号中,他应该用Java符号计算
'a'-'z'
。我的观点是,他的符号与字符编号相反。顺便说一句,“反之亦然”