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'
。我的观点是,他的符号与字符编号相反。顺便说一句,“反之亦然”